Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一组执行计划任务的集群python工作程序_Python_Multithreading_Parallel Processing_Cluster Computing - Fatal编程技术网

一组执行计划任务的集群python工作程序

一组执行计划任务的集群python工作程序,python,multithreading,parallel-processing,cluster-computing,Python,Multithreading,Parallel Processing,Cluster Computing,我想建立一组集群工人(即digitalocean中的水滴) 每个工作人员将定期执行一项任务,并定期将结果发送到主应用程序 下面是一个伪代码,用于取消功能集中: 工人代码 while True: resultFromLocationXY = calculate_my_local_task() send_task_to_the_main_application(resultFromLocationXY) time.sleep(5) 主要应用程序代码 while True:

我想建立一组集群工人(即digitalocean中的水滴)

每个工作人员将定期执行一项任务,并定期将结果发送到主应用程序

下面是一个伪代码,用于取消功能集中:

工人代码

while True:
    resultFromLocationXY = calculate_my_local_task()
    send_task_to_the_main_application(resultFromLocationXY)
    time.sleep(5)
主要应用程序代码

while True:
    resultFromLocationXY = calculate_my_local_task()
    send_task_to_the_main_application(resultFromLocationXY)
    time.sleep(5)
在主应用程序中,我希望异步评估辅助程序结果:

while True:
    resultFromLocationXY = listen_to_results_from_location('xy') # not blocking, if new results are available, update the results variable

    process_the_results([resultFromLocationXY, resultFromLocationXX, ...])
    time.sleep(5)
我一直在使用ipython ipcluster解决方案。我能够创建一个远程工作者,并通过使用apply_async函数执行一个任务,并以非阻塞方式安排所有任务

但是:我不能做周期性的任务,类似于流式任务。此外,我希望在一个位置有更多的节点,并将相同的变量流到主应用程序中


我更喜欢非ipython解决方案。

对我来说,最好的解决方案之一可能是

  • 创建一个python守护进程,它将侦听工作进程。工作进程发送一些数据后,主守护进程将创建一个线程并再次启动以侦听其他工作进程
  • 创建worker并使用cron实用程序。通过这种方式,您可以在一定的时间间隔内动态创建工人。工人将调用主守护进程。一旦主守护进程以“OK状态”响应,工作进程就可以启动

好的,谢谢。我没有想到使用cron。您将使用什么在主应用程序和工作程序之间以非阻塞方式进行远程通信?使用新的异步库如何?Python3.4稳定版应该很快就会推出。