Gearman任务服务器
gmtasks的Python项目详细描述
gmtasks包含一个简单的Gearman Workers多处理服务器, 为便于配置和最大可用性而设计。它包括 任务包装器类,用于捕获可能引发的任何中断或异常 通过您的任务方法,并尝试确保受影响的作业 重新插入到队列中(如果工作进程 脚本异常退出)
请参阅full documentation了解 更详细的信息。
示例用法
from multiprocessing import freeze_support from gmtasks.jsonclass import GearmanWorker from gmtasks import GearmanTaskServer, Task # Jobs def job1(worker, job): return job.data['string1'] def job2(worker, job): return job.data['string2'] def job3(worker, job): return job.data['string3'] # Main loop if __name__ == '__main__': # Need this to run in Windows freeze_support() # Import all of the jobs we handle tasks = [ Task('job1', job1), {'task': 'job2', 'callback': job2}, ['job3', job3], ] # Initialize the server server = GearmanTaskServer( host_list = ['localhost:4730'], tasks = tasks, max_workers = None, # Defaults to multiprocessing.cpu_count() id_prefix = 'myworker.', worker_class = GearmanWorker, use_sighandler = True, # SIGINT and SIGTERM send KeyboardInterrupt verbose = True, # log.info() and log.error() messages ) # Run the loop server.serve_forever()