简单可靠的任务管理器。尝试一个类似芹菜的,异步友好的。

aio-task的Python项目详细描述


aio任务 pipeline statuscoverage reportPEP8Downloads

可靠和执行异步友好的异步任务管理器。在

主要特点

  • 一个简单的worker接口,用于将协程注册为任务。在
  • 生成和获取任务的简单代理接口。在
  • 可以在单个程序中设置代理和工作线程,避免外部服务依赖(通过使用虚拟队列和缓存)。在
  • 如果工作线程在处理任务时崩溃,则不会丢失它,它将保留在队列中并重新处理,直到工作线程确认它为止。在
  • 任务异常不会丢失:您将在任务的结果中检索它们。在
  • 支持rabbitmq、redis和sentinel。在
  • 可轻松添加新的队列/缓存服务

入门

使用docker-compose -f examples/docker-compose.yml up启动rabbitmq和redis来运行此示例。

安装
pip install aio-task

Worker→运行任务

^{pr2}$

代理→生成任务

importasynciofromaio_taskimportBrokerasyncdefsample_addition():# setup brokerrabbitmq_config={"url":"amqp://guest:guest@localhost:5672","routing_key":"tasks_queue"}redis_config={"address":"redis://localhost"}broker=awaitBroker.create("rabbitmq",rabbitmq_config,"redis",redis_config)# produce tasktask_id=awaitbroker.create_task("addition",{"a":1,"b":2})awaitasyncio.sleep(0.1)# fetch tasktask=awaitbroker.get_task(task_id)print(task)awaitbroker.close()# gracefull shutdownloop=asyncio.get_event_loop()loop.run_until_complete(sample_addition())loop.run_until_complete(broker.close())

示例/…中有更多示例。。。在

运行测试

单元测试

pip install -e .[test]
pytest -xvs tests/unit

集成测试

pip install -e .[test]
docker-compose -f tests/integration/compose/docker-compose up -d
pytest -xvs tests/integration

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javaelk:如何在Kibana中按异常类对stacktrace进行分组   java两个组件使用MigLayout相互重叠   java Hibernate标准获取关联实体的列表,而不是父实体的列表   从Java关闭另一个应用程序,但不是由当前Java应用程序启动   java使用OGNL获取参数   java如何在SSLEngine中启用密码TLS\U DHE\U RSA\U和\U AES\U 256\U GCM\U SHA384   在Java中有效地比较两个列表<Object[]>   java杀死挂起的线程   在java中从指定模式前后的字符串中提取子字符串   存储整数的java HashMap替代方案   java如何使用LibGDX加载特定于语言的资产?   java如何使用JSON响应从维基百科读取结构化数据   java无法连接到Spark Master:原因是:[已解除关联]   java如何配置Elastic beanstalk classic负载平衡器以使用CLI终止HTTPS   java筛网中的奥斯汀大于int   java PircBot在每个用户上迭代一组命令   java将带有Jackson的hashmap编组为XML的错误结构   testng中的java设置testfailure给出了正回报   java如何在IntelliJ中正确配置Eclipse项目?