def start(self): """register dispatchers for streams""" self.io_loop = ioloop.IOLoop.current() self.msg_queue = PriorityQueue() self.io_loop.add_callback(self.dispatch_queue) if self.control_stream: self.control_stream.on_recv( partial( self.schedule_dispatch, CONTROL_PRIORITY, self.dispatch_control, ), copy=False, ) for s in self.shell_streams: if s is self.control_stream: continue s.on_recv( partial( self.schedule_dispatch, SHELL_PRIORITY, self.dispatch_shell, s, ), copy=False, ) # publish idle status self._publish_status('starting')
def __init__(self, name="QUEUE"): super(SRQueue, self).__init__() self.name = name self.queue = PriorityQueue() self._result_queue = Queue() self.processing = [] self.min_priority = SRQueuePriorities.EXTREME self.amActive = False self.stop = False
def __init__(self, stream, address, server=None): self.stream = stream self.address = address self.is_authed = False self.last_message = None self.server = server self.id = hash(datetime.now()) self._queue = PriorityQueue() self._queue.join() logger.debug('Worker for {} is initiated'.format(address))
def __init__(self, name="QUEUE"): super(SRQueue, self).__init__() self.name = name self.scheduler = TornadoScheduler({'apscheduler.timezone': 'UTC'}) self.queue = PriorityQueue() self._result_queue = Queue() self._queue_items = [] self.processing = [] self.min_priority = SRQueuePriorities.EXTREME self.amActive = False self.stop = False
def __init__(self): scheduler = IOLoopScheduler(IOLoop.current()) self._define_app_handlers() self.orders = PriorityQueue() self.posted_orders = [] self.fulfilled_orders = [] self.messages = Subject() self.only_messages = self.messages \ .filter(lambda msg: msg[0] == 'message') \ .map(lambda msg: msg[1].split(',')) \ .publish() def queue_order(msg): print('queueing order: {}'.format(msg)) self.orders.put(Order.from_list(msg)) self.only_messages \ .filter(lambda msg: msg[0] == 'order') \ .map(lambda msg: msg[1:]) \ .subscribe(queue_order) self.only_messages.connect() def process_order(time): try: order = self.orders.get_nowait() print('processing order: {} [{}]'.format( order, order.timestamp)) matching = None for posted in self.posted_orders: if posted.matches(order): matching = posted break if matching is None: self.posted_orders.append(order) print('could not find match, posted order count is {}'. format(len(self.posted_orders))) else: self.posted_orders.remove(posted) self.fulfilled_orders.append(posted) self.fulfilled_orders.append(order) print('order fulfilled: {}'.format(order)) print('fulfilled by: {}'.format(posted)) except QueueEmpty: pass Observable.interval(100, scheduler=scheduler).subscribe(process_order)
def __init__(self, name=None, max_count=10, dt=0.5, client_set=None): global clients_set self.name = name or hash(datetime.now()) self.max_count = max_count self.dt = dt self.authorized = False self.count = 0 if client_set is None: self.client_set = set() self.client_set.add(self) else: self.client_set = client_set self._event_queue = PriorityQueue() self._event_queue.join() logger.debug('client start {}'.format(self.name)) IOLoop.current().spawn_callback(self.init) IOLoop.current().spawn_callback(self.start_produce)
from tornado.queues import PriorityQueue q = PriorityQueue() q.put((1, 'medium-priority item')) q.put((0, 'high-priority item')) q.put((10, 'low-priority item')) print(q.get_nowait()) print(q.get_nowait()) print(q.get_nowait())
import os from concurrent.futures import ThreadPoolExecutor from tornado.queues import PriorityQueue, QueueEmpty from tornado.gen import sleep, coroutine from tokit import Event, on, logger from inspect import iscoroutinefunction from email.mime.text import MIMEText import smtplib from email.header import Header from tornado.gen import coroutine from tornado.concurrent import run_on_executor tasks_queue = PriorityQueue() def put(name, *args, priority=0, **kwargs): """ Schedule a task with given params Handlers of event with same name will be used when execute task Example:: @on('task_xyz') def do_something(arg1): pass put('task_xyz', 'val1') """ tasks_queue.put((priority, {'name': name, 'args': args, 'kwargs': kwargs}))