Gearman Worker自恢复方案

Gearman的worker节点注册任务到server后,启动工作循环,正常情况下,该循环不会退出。有些情况我们希望worker可以在需要的时候断开,亦或者重新启动worker节点,方案有以下几种:

1、手动关闭
    在需要的时候手动关闭woker进程并重新启动,在分布式环境下,节点过多时基本不可行

2、单任务结束后退出或重启
    通常worker建立后都不止为了一个任务,频繁退出启动不可行

3、定时检查配置文件
    worker通过定时检查配置决定是否退出或重启,此法在部分情况下可行,若对系统实时性要求较高,或配置文件更新频繁,则会导致worker频繁重启

4、client端发送优先级高的退出或重启请求
    将退出或重启请求作为Gearman job发送给worker处理,并将任务设为高优先级,worker根据接收到的任务做处理。此方案针对woker节点所处理的任务不同时可行,由于gearman server在调度任务时选择一个节点进行处理,因而在多个节点处理同一任务时难以控制要退出或重启的worker节点

5、单独建立通信,利用守护进程或线程执行
    为每个worker和server配备一个守护进程,worker的守护进程可实现为RPC server,利用Gearman admin配合集群监控实现对所有worker的管理

你可能感兴趣的:(任务调度,gearman,woker,自恢复)