asyncoro version 3.6.10 has been released. In this version two additional optional parameters have been added toRemoteCoroScheduler constructor:

  • proc_available can optionally be set to a coroutine, which is executed at client when a remote server process becomes available; the coroutine can send additional data (that is not sent as part of depends), execute remote coroutine(s) on that process (e.g., to iniitialize the process, including reading data in to memory for in-memory processing) etc. The coroutine should exit with 0 to indicate successful initialization; any other value causes the scheduler to ignore that server for running remote coroutines,
  • proc_close can optionally be set to a coroutine, which is executed at client when a remote server process is about to be closed (in which case, it can execute remote coroutines on that process, for example, to cleanup the process, such as sending results files back to client, deleting global variables that have been used etc.), or when it has already closed (e.g., the user has closed the server manually / terminated discroronode, or server has been closed because it has been deemed zombie because no heartbeat messages have been received for zombie period).
    .
    Examples illustrating various use cases / features for remote coroutine execution (discomp*.py and discoro_client*.pyfiles in examples directory) have been simplified using proc_avaialable and proc_close parameters above).