Exemplo n.º 1
0
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'])
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
 def spawn_worker(self, queues):
     pid = os.fork()
     if not pid:
         Worker.run(queues, interval=1)
         os._exit(0)
     else:
         return pid
Exemplo n.º 7
0
 def spawn_worker(self, queues):
     pid = os.fork()
     if not pid:
         Worker.run(queues, interval=1)
         os._exit(0)
     else:
         return pid
Exemplo n.º 8
0
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)
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
    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)
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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'])
Exemplo n.º 13
0
  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)
Exemplo n.º 14
0
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)
Exemplo n.º 15
0
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)
Exemplo n.º 16
0
    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)
Exemplo n.º 17
0
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)
Exemplo n.º 18
0
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)
Exemplo n.º 19
0
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
Exemplo n.º 20
0
#!/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)
Exemplo n.º 21
0
def main():
    Worker.run([queue_name], server=config.get('nephelae', 'resque_server'))
Exemplo n.º 22
0
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))
Exemplo n.º 23
0
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))
Exemplo n.º 24
0
# -*- 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"])