繁体   English   中英

一组执行计划任务的集群python工人

[英]A set of cluster python workers doing scheduled tasks

我想建立一组集群工作者 (例如,数字海洋中的飞沫)。

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

这是伪装的功能的伪代码:

工人代码

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状态”响应,工作人员就可以启动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM