def schedule_and_run_resque(): print 'scheduling' offset, upper_limit, payload = config['payload']['offset'], config['payload']['upper_limit'], config['payload']['payload'] while(offset < upper_limit): r.enqueue(FaceppAPIFetcher, offset, payload) offset += payload Worker.run([config['redis']['resque_queue_name']], server=config['redis']['redis_server'])
def handle_noargs(self, **options): queues = (environ.get('QUEUES') or environ.get('QUEUE') or getattr(settings, 'PYRES_QUEUES', None)) if not queues: raise CommandError( 'A list of queues should be specified for ' 'worker to run. Try set PYRES_QUEUES django settings ' 'variable or QUEUES environment variable, e.g.\n' '$ QUEUES=q1,q2 python2 management.py pyres_worker') if isinstance(queues, basestring): queues = queues.split(',') server = "%s:%d" % (getattr(settings, 'REDIS_HOST', 'localhost'), getattr(settings, 'REDIS_PORT', 6379)) try: interval = int(options.get('interval')) except ValueError: raise CommandError('Interval must be an integer') log_level = getattr(logging, options.get('log_level').upper(), 'INFO') setup_logging("pyres", log_level=log_level, filename=options.get('log_file')) Worker.run(queues, server, interval)
def pyres_worker(): usage = "usage: %prog [options] arg1" parser = OptionParser(usage=usage) parser.add_option("--host", dest="host", default="localhost") parser.add_option("--port",dest="port",type="int", default=6379) parser.add_option("-i", '--interval', dest='interval', default=None, help='the default time interval to sleep between runs') parser.add_option('-l', '--log-level', dest='log_level', default='info', help='log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.') parser.add_option('-f', dest='logfile', help='If present, a logfile will be used. "stderr", "stdout", and "syslog" are all special values.') parser.add_option('-p', dest='pidfile', help='If present, a pidfile will be used.') (options,args) = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') setup_logging(procname="pyres_worker", log_level=log_level, filename=options.logfile) setup_pidfile(options.pidfile) interval = options.interval if interval is not None: interval = int(interval) queues = args[0].split(',') server = '%s:%s' % (options.host,options.port) Worker.run(queues, server, interval)
def pyres_worker(): usage = "usage: %prog [options] arg1" parser = OptionParser(usage=usage) parser.add_option("--host", dest="host", default="localhost") parser.add_option("--port",dest="port",type="int", default=6379) parser.add_option("-i", '--interval', dest='interval', default=None, help='the default time interval to sleep between runs') parser.add_option('-l', '--log-level', dest='log_level', default='info', help='log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.') parser.add_option('-f', dest='logfile', help='If present, a logfile will be used.') parser.add_option("-n", "--nonblocking-pop", dest="blocking_pop", action="store_false", default=True, help="If absent, Pyres will use the Redis blocking pop (BLPOP) to obtain jobs from the queue(s). If present, Redis will use a non-blocking pop (LPOP) and will sleep for up to 8 seconds if no jobs are available.") (options,args) = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') setup_logging(log_level=log_level, filename=options.logfile) interval = options.interval if interval is not None: interval = int(interval) queues = args[0].split(',') server = '%s:%s' % (options.host,options.port) Worker.run(queues, server, options.blocking_pop, interval)
def pyres_worker(): """Worker CLI, lightly modified from pyres. """ usage = 'usage: %prog [options] arg1' parser = OptionParser(usage=usage) parser.add_option('--host', dest='host', default=settings['host']) parser.add_option('--port', dest='port', type='int', default=settings['port']) parser.add_option('--password', dest='password', default=settings['password']) parser.add_option('-i', '--interval', dest='interval', default=None) parser.add_option('-l', '--log-level', dest='log_level', default='info') parser.add_option('-f', dest='logfile') parser.add_option('-p', dest='pidfile') parser.add_option('-t', '--timeout', dest='timeout') options, args = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') setup_logging(procname="pyres_worker", log_level=log_level, filename=options.logfile) setup_pidfile(options.pidfile) interval = options.interval if interval is not None: interval = int(interval) timeout = options.timeout and int(options.timeout) queues = args[0].split(',') server = '{0}:{1}'.format(options.host, options.port) Worker.run(queues, server, options.password, interval, timeout=timeout)
def spawn_worker(self, queues): pid = os.fork() if not pid: Worker.run(queues, interval=1) os._exit(0) else: return pid
def spawn_worker(self, queues): pid = os.fork() if not pid: Worker.run(queues, interval=1) os._exit(0) else: return pid
def start_worker(queues, all, interval): """ Start a worker process to consume the queues in :queues. :interval is the number of seconds before tasks. Minimum of 1 sadly. """ selected_queues = map(str, queues) known_queues = resq.get_queue_names() unknown_queues = map(str, set(queues).difference(set(known_queues))) # gotta have at least one queue if not selected_queues: if all: selected_queues = known_queues else: message = "option --queues must be one or more of: %s. exiting." % known_queues logging.error(message) return # stop if one of the queues specified is not in the list of possible queues if unknown_queues: message = "received one or more unknown queue names: %s. exiting." % list(unknown_queues) logging.error(message) return logging.info("Starting worker for %s with interval of %s second(s), for %s" % (selected_queues, interval, resq._REDIS)) try: Worker.run(selected_queues, resq._REDIS, interval) logging.info("started worker...") except Exception, e: logging.error("error starting worker: %s. exiting." % e)
def pyres_worker(): usage = "usage: %prog [options] arg1" parser = OptionParser(usage=usage) parser.add_option("--host", dest="host", default="localhost") parser.add_option("--port", dest="port", type="int", default=6379) parser.add_option( "-i", "--interval", dest="interval", default=None, help="the default time interval to sleep between runs" ) parser.add_option( "-l", "--log-level", dest="log_level", default="info", help='log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.', ) parser.add_option("-f", dest="logfile", help="If present, a logfile will be used.") (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), "INFO") setup_logging(log_level=log_level, filename=options.logfile) interval = options.interval if interval is not None: interval = float(interval) queues = args[0].split(",") server = "%s:%s" % (options.host, options.port) Worker.run(queues, server, interval)
def handle_noargs(self, **options): queues = (environ.get('QUEUES') or environ.get('QUEUE') or getattr(settings, 'PYRES_QUEUES', None)) if not queues: raise CommandError('A list of queues should be specified for ' 'worker to run. Try set PYRES_QUEUES django settings ' 'variable or QUEUES environment variable, e.g.\n' '$ QUEUES=q1,q2 python2 management.py pyres_worker') if isinstance(queues, basestring): queues = queues.split(',') server = "%s:%d" % (getattr(settings, 'REDIS_HOST', 'localhost'), getattr(settings, 'REDIS_PORT', 6379)) try: interval = int(options.get('interval')) except ValueError: raise CommandError('Interval must be an integer') log_level = getattr(logging, options.get('log_level').upper(), 'INFO') setup_logging("pyres", log_level=log_level, filename=options.get('log_file')) Worker.run(queues, server, interval)
def pyres_worker(): usage = "usage: %prog [options] arg1" parser = OptionParser(usage=usage) parser.add_option("--host", dest="host", default="localhost") parser.add_option("--port", dest="port", type="int", default=6379) parser.add_option("--password", dest="password", default=None) parser.add_option("-i", '--interval', dest='interval', default=None, help='the default time interval to sleep between runs') parser.add_option( '-l', '--log-level', dest='log_level', default='info', help= 'log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.' ) parser.add_option( '-f', dest='logfile', help= 'If present, a logfile will be used. "stderr", "stdout", and "syslog" are all special values.' ) parser.add_option('-p', dest='pidfile', help='If present, a pidfile will be used.') parser.add_option("-t", '--timeout', dest='timeout', default=None, help='the timeout in seconds for this worker') (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') setup_logging(procname="pyres_worker", log_level=log_level, filename=options.logfile) setup_pidfile(options.pidfile) interval = options.interval if interval is not None: interval = int(interval) timeout = options.timeout and int(options.timeout) queues = args[0].split(',') server = '%s:%s' % (options.host, options.port) password = options.password Worker.run(queues, server, password, interval, timeout=timeout)
def main(): args = parse_arguments() app = create_app(args.conf, debug=args.debug) if args.queue: queue = args.queue.split(',') else: queue = app.config['DEFAULT_QUEUES'] with app.app_context(): Worker.run(queue, server="%s:%s" % (app.config['REDIS_HOST'], app.config['REDIS_PORT']), password=app.config['REDIS_PASS'])
def run(self): import ggtracker from ggtracker.utils import django_setup from django.conf import settings django_setup() if options.logfile != '': setup_logging(procname="pyres_worker", log_level='INFO', filename=options.logfile) else: setup_logging(procname="pyres_worker", log_level='INFO') # setup_pidfile(options.pidfile) Worker.run(['python', 'python-low', 'python-bg'], settings.REDIS_SERVER)
def main(argv=sys.argv): """ Launches a pyres worker using the host and queues provided by the config keys `pyres.host` and `pyres.queues` """ if len(argv) != 2: usage(argv) config_uri = argv[1] settings = get_appsettings(config_uri) host = settings['pyres.host'] queues = settings['pyres.queues'].strip().split(',') setup_logging(procname="notaliens.tasks.worker", log_level="INFO") Worker.run(queues, server=host)
def main(argv=sys.argv): """ Launches a pyres worker using the host and queues provided by the config keys `pyres.host` and `pyres.queues` """ if len(argv) != 2: usage(argv) config_uri = argv[1] settings = get_appsettings(config_uri) host = settings['pyres.host'] queues = settings['pyres.queues'].strip().split(',') setup_logging(procname="notaliens.tasks.worker", log_level="INFO") Worker.run(queues, server=host)
def run(self): import ggtracker from ggtracker.utils import django_setup from django.conf import settings django_setup() if options.logfile != '': setup_logging(procname="pyres_worker", log_level='INFO', filename=options.logfile) else: setup_logging(procname="pyres_worker", log_level='INFO') # setup_pidfile(options.pidfile) Worker.run(['python', 'python-low', 'python-bg'], settings.REDIS_SERVER)
def pyres_worker(): """Worker CLI, lightly modified from pyres. """ usage = 'usage: %prog [options] arg1' parser = OptionParser(usage=usage) parser.add_option('--host', dest='host', default=settings['host']) parser.add_option('--port', dest='port', type='int', default=settings['port']) parser.add_option('--password', dest='password', default=settings['password']) parser.add_option('-i', '--interval', dest='interval', default=None) parser.add_option('-l', '--log-level', dest='log_level', default='info') parser.add_option('-f', dest='logfile') parser.add_option('-p', dest='pidfile') parser.add_option('-t', '--timeout', dest='timeout') options, args = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') setup_logging(procname="pyres_worker", log_level=log_level, filename=options.logfile) setup_pidfile(options.pidfile) interval = options.interval if interval is not None: interval = int(interval) timeout = options.timeout and int(options.timeout) queues = args[0].split(',') server = '{0}:{1}'.format(options.host, options.port) Worker.run(queues, server, options.password, interval, timeout=timeout)
def pyres_worker(): usage = "usage: %prog [options] arg1" parser = OptionParser(usage=usage) #parser.add_option("-q", dest="queue_list") parser.add_option("--host", dest="host", default="localhost") parser.add_option("--port", dest="port", type="int", default=6379) parser.add_option("-i", '--interval', dest='interval', default=None, help='the default time interval to sleep between runs') parser.add_option( '-l', '--log-level', dest='log_level', default='info', help= 'log level. Valid values are "debug", "info", "warning", "error", "critical", in decreasing order of verbosity. Defaults to "info" if parameter not specified.' ) parser.add_option('-f', dest='logfile', help='If present, a logfile will be used.') (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() parser.error("Argument must be a comma seperated list of queues") log_level = getattr(logging, options.log_level.upper(), 'INFO') #logging.basicConfig(level=log_level, format="%(asctime)s: %(levelname)s: %(message)s") setup_logging(log_level=log_level, filename=options.logfile) interval = options.interval if interval is not None: interval = float(interval) queues = args[0].split(',') server = '%s:%s' % (options.host, options.port) Worker.run(queues, server, interval)
def main(args=None): if args is None: args = sys.argv[1:] parser = argparse.ArgumentParser() parser.add_argument('--conf', '-c', help="Path to configuration file.") parser.add_argument('--verbose', '-v', action='count', default=0, help='Log level: v=warning, vv=info, vvv=debug.') options = parser.parse_args(args) log_level = LOGS[options.verbose].upper() logging.basicConfig( level=getattr(logging, log_level), format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) if options.conf: cfg = Config.load(abspath(expanduser(options.conf))) else: cfg = Config() conn = ResQ(server="%s:%s" % (cfg.REDIS_HOST, cfg.REDIS_PORT), password=cfg.REDIS_PASSWORD) conn.config = cfg connect( cfg.MONGO_DB, host=cfg.MONGO_HOST, port=cfg.MONGO_PORT, username=cfg.MONGO_USER, password=cfg.MONGO_PASS ) print print("--- Wight worker started ---") print Worker.run([WorkerJob.queue], conn) print print "--- Wight worker killed ---" print
#!/usr/bin/env python import logging, time from pyres.worker import Worker import redis logging.basicConfig(level=logging.INFO) while True: try: Worker.run(['queue'], 'localhost:6379', None) except redis.exceptions.ConnectionError: print("Connection to redis lost - reconnecting in 2") time.sleep(2)
def main(): Worker.run([queue_name], server=config.get('nephelae', 'resque_server'))
def pyres_worker(queue, log_filename=None): """Start the pyres worker on the queue""" #setup_logging(log_level=logging.INFO, filename=log_filename) Worker.run([queue], server='%s:%d' % (config.REDIS_HOST, config.REDIS_PORT))
def pyres_worker(queue, log_filename=None): """Start the pyres worker on the queue""" #setup_logging(log_level=logging.INFO, filename=log_filename) Worker.run([queue], server='%s:%d' % (config.REDIS_HOST, config.REDIS_PORT))
# -*- coding: utf-8 -*- from pyres import setup_logging from pyres.worker import Worker from eventq import eventQ from callq import callQ setup_logging(procname="barista", log_level="INFO", filename="/tmp/barista.log") Worker.run(["baristaEvent", "baristaCall"])