示例#1
0
 def test_job_queue(self):
     job = Job.create(self.conn, self.dataset)
     stage = job.get_stage("ingest")
     status = stage.get_status()
     assert status["pending"] == 0
     assert status["finished"] == 0
     assert job.is_done()
     stage.queue({"test": "foo"}, {})
     status = job.get_status()
     assert status["pending"] == 1
     assert status["finished"] == 0
     assert status["running"] == 0
     assert not job.is_done()
     task = Stage.get_task(self.conn, "ingest", timeout=None)
     assert task.job.dataset.name == job.dataset.name
     assert task.payload["test"] == "foo"
     status = job.get_status()
     assert status["pending"] == 0
     assert status["running"] == 1
     assert status["finished"] == 0
     assert not job.is_done()
     task.done()
     status = job.get_status()
     assert status["pending"] == 0
     assert status["running"] == 0
     assert status["finished"] == 1
     assert job.is_done()
示例#2
0
 def test_job_queue(self):
     job = Job.create(self.conn, self.dataset)
     stage = job.get_stage(Stage.INGEST)
     status = stage.get_status()
     assert status['pending'] == 0
     assert status['finished'] == 0
     assert job.is_done()
     stage.queue({'test': 'foo'}, {})
     status = job.get_status()
     assert status['pending'] == 1
     assert status['finished'] == 0
     assert status['running'] == 0
     assert not job.is_done()
     task = Stage.get_task(self.conn, Stage.INGEST,
                           timeout=None)
     assert task.job.dataset.name == job.dataset.name
     assert task.payload['test'] == 'foo'
     status = job.get_status()
     assert status['pending'] == 0
     assert status['running'] == 1
     assert status['finished'] == 0
     assert not job.is_done()
     task.done()
     status = job.get_status()
     assert status['pending'] == 0
     assert status['running'] == 0
     assert status['finished'] == 1
     assert job.is_done()
示例#3
0
 def sync(self):
     """Process only the tasks already in the job queue, but do not
     go into an infinte loop waiting for new ones."""
     self.init_internal()
     while True:
         stages = self.get_stages()
         task = Stage.get_task(self.conn, stages, timeout=None)
         if task is None:
             return
         self.handle_safe(task)
示例#4
0
 def process(self, interval=5):
     while True:
         if self._shutdown:
             return
         self.periodic()
         stages = self.get_stages()
         task = Stage.get_task(self.conn, stages, timeout=interval)
         if task is None:
             continue
         self.handle_safe(task)
示例#5
0
 def process(self, blocking=True, interval=INTERVAL):
     while True:
         if self.exit_code > 0:
             return self.exit_code
         self.periodic()
         stages = self.get_stages()
         task = Stage.get_task(self.conn, stages, timeout=interval)
         if task is None:
             if not blocking:
                 return self.exit_code
             continue
         self.handle_safe(task)
示例#6
0
文件: queues.py 项目: moreymat/aleph
def queue_task(dataset, stage, job_id=None, context=None, **payload):
    stage = get_stage(dataset, stage, job_id=job_id)
    stage.queue(payload or {}, context or {})
    if settings.TESTING:
        from aleph.worker import get_worker

        worker = get_worker()
        while True:
            stages = worker.get_stages()
            task = Stage.get_task(worker.conn, stages, timeout=None)
            if task is None:
                break
            worker.dispatch_task(task)
示例#7
0
文件: support.py 项目: we1l1n/aleph
 def setUp(self):
     # Force tests to use fake configuration
     service_settings.REDIS_URL = None
     service_settings.ARCHIVE_TYPE = 'file'
     service_settings.ARCHIVE_PATH = mkdtemp()
     balkhash_settings.BACKEND = 'LEVELDB'
     balkhash_settings.LEVELDB_PATH = mkdtemp()
     conn = get_fakeredis()
     job = Job.create(conn, 'test')
     stage = Stage(job, Stage.INGEST)
     self.manager = Manager(stage, {})
     self.manager.entities = []
     self.manager.emit_entity = types.MethodType(emit_entity, self.manager)
     self.manager.queue_entity = types.MethodType(queue_entity,
                                                  self.manager)  # noqa
     self.archive = init_archive()
     self.manager._archive = self.archive
示例#8
0
文件: support.py 项目: djoffrey/aleph
 def setUp(self):
     # Force tests to use fake configuration
     ingestors_settings.TESTING = True
     service_settings.REDIS_URL = None
     service_settings.ARCHIVE_TYPE = 'file'
     service_settings.ARCHIVE_PATH = mkdtemp()
     ftmstore_settings.DATABASE_URI = 'sqlite://'
     conn = get_fakeredis()
     job = Job.create(conn, 'test')
     stage = Stage(job, OP_INGEST)
     dataset = get_dataset(job.dataset.name, OP_INGEST)
     self.manager = Manager(dataset, stage, {})
     self.manager.entities = []
     self.manager.emit_entity = types.MethodType(emit_entity, self.manager)
     self.manager.queue_entity = types.MethodType(queue_entity,
                                                  self.manager)  # noqa
     self.archive = init_archive()
     self.manager._archive = self.archive
示例#9
0
 def _get_task(self):
     """return the newly created reporting task"""
     return Stage.get_task(self.conn, [OP_REPORT])