一组执行计划任务的集群python工作程序
我想建立一组集群工人(即digitalocean中的水滴) 每个工作人员将定期执行一项任务,并定期将结果发送到主应用程序 下面是一个伪代码,用于取消功能集中: 工人代码一组执行计划任务的集群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:
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状态”响应,工作进程就可以启动