def port_async_processing_task(galloper_url, galloper_project_id, galloper_token, results, report_name, minio_package_name): browsertime_package = f"browsertime_{uuid4()}" params = dict(galloper_url=galloper_url, project_id=galloper_project_id, token=galloper_token, bucket=REPORTS_BUCKET, filename=browsertime_package, url=results.results["info"].get("url"), headers=results.results["info"].get("headers") if results.results["info"].get("headers") else {}, minio_package_name=minio_package_name, report_filename=report_name, browser="chrome") if RABBIT_HOST: logger.info("Connecting to Arbiter") arbiter = Arbiter(host=RABBIT_HOST, port=RABBIT_PORT, user=RABBIT_USER, password=RABBIT_PASSWORD, start_consumer=False) arbiter.apply(task_name='browsertime', queue=RABBIT_QUEUE_NAME, task_kwargs=params) return browsertime_package
def test_kill_task(): arbiter = Arbiter(host=arbiter_host, port=5672, user=arbiter_user, password=arbiter_password) start = time() tasks = arbiter.apply("long_running") for task_key in tasks: assert arbiter.status(task_key)['state'] == 'initiated' sleep(2) # time for task to settle arbiter.kill(tasks[0], sync=True) for message in arbiter.wait_for_tasks(tasks): assert message['state'] == 'done' assert time()-start < 180 # 180 sec is a length of task assert arbiter.workers()[arbiter_queue]['available'] == 10 arbiter.close()
def test_task_in_task(): arbiter = Arbiter(host=arbiter_host, port=5672, user=arbiter_user, password=arbiter_password) assert arbiter.workers()[arbiter_queue]['total'] == 10 task_keys = [] for _ in range(20): task_keys.append(arbiter.apply("simple_add", task_args=[1, 2])[0]) for task_key in task_keys: assert arbiter.status(task_key)['state'] in ('initiated', 'running') for message in arbiter.wait_for_tasks(task_keys): assert message['state'] == 'done' assert message['result'] == 3 for task_key in task_keys: assert arbiter.status(task_key)['state'] == 'done' assert arbiter.status(task_key)['result'] == 3 assert arbiter.workers()[arbiter_queue]['available'] == 10 arbiter.close()