我已将队列工作程序配置为Forge上的守护程序,然后使用推荐的部署脚本命令(public class List :
#if __IOS__
SfListView
#else
ListView
#endif
{
}
)。
如何手动停止并重新启动队列工作程序?如果我停止它,主管将重新启动它。我是否需要先在Forge中杀死活跃的工作人员?
这可能是临时性的。例如,如果我想清除队列已打开的日志文件。
答案 0 :(得分:1)
我在部署讨论中非常直言不讳,我总是告诉人们使用supervisorctl命令停止他们的工作进程。
supervisorctl stop <name of task>
使用queue:restart
命令实际上不会重启任何内容。它在缓存中设置工作进程检查和关闭的条目。正如您所注意到的,主管将重新启动该过程。
这意味着queue:restart
有一个很大的问题,忽略了命名以及它没有重启的事实;它将导致使用相同缓存的所有服务器上的所有工作进程重新启动。我认为这是错误的,我认为部署应该只影响当前部署到的当前服务器。
如果您正在使用每服务器缓存,例如file
缓存驱动程序,那么这还有另一个问题;如果您的部署完全删除了网站文件夹会发生什么?缓存会改变,队列将重新开始,工作进程可能混合使用新旧代码。有趣的事情要调试......
主管将在关闭时发出信号,并等待它完全关闭,如果没有,则强行将其杀死。可以在超级用户配置文件中配置这些超时。这意味着使用supervisorctl来停止队列进程不会终止任何作业,并且#34;中途完成(假设它们运行的时间足够短,或者你增加了超时)。