自动为python gearman worker重新加载代码

时间:2012-09-10 17:40:37

标签: python debugging gearman

我正在改进一组用python编写的齿轮工人。他们使用基本代码启动:

gm_worker = gearman.GearmanWorker(server_address_list)
gm_worker.register_task('pipeline', pipeline_task_gm_worker)
gm_worker.work()

我正在寻找的是另一种启动工作程序的方法,以便它监视文件系统以查找工作程序代码的更改并在它看到它们时重新启动。所有Web框架都支持这一点,以便于调试。是否有可能与齿轮工人一起做这件事?

1 个答案:

答案 0 :(得分:0)

重新启动: 来自Django的解决方案:首先启动看门狗进程,分配工作进程。如有必要,看门狗最终会杀死工人。

重新加载:重新加载代码而不丢失内存中数据的最佳和最一般的是Guido(发明者Python)代码。例如。通过新代码对象重新加载代码并替换类对象中的旧代码对象也会在所有实例中替换它而不会丢失任何实例数据。我的重新加载建议帮助用户here。目前我可以安全地重新加载我所有或众所周知的代码,但我永远不想重新加载黑盒子 - 第三方未知代码,如gearman。如果当前正在调试器中跟踪某些代码,则重新加载也不起作用。重启是透明的。