gmtasks
gmtasks copied to clipboard
Multi-process Gearman Task Server library
=================== Gearman Task Server
gmtasks
contains a simple multiprocessing server for Gearman workers,
designed for ease of configuration and maximum availability. It includes a
task wrapper class that traps any interrupts or exceptions that might be thrown
by your task methods, and attempts to make sure that the affected job is
re-inserted into the queue (which is not the default behavior if the worker
script exits abnormally)
Please see the full documentation <http://packages.python.org/gmtasks/>
_ for
more detailed information.
Sample usage
::
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()
Download
~~~~~~~~
* https://github.com/ex-nerd/gmtasks
* http://pypi.python.org/pypi/gmtasks/