0

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

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

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

4

1 回答 1

0

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

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

于 2012-09-10T21:13:22.723 回答