弹道导弹

mbq.atomiq的Python项目详细描述


https://img.shields.io/pypi/v/mbq.atomiq.svghttps://img.shields.io/pypi/l/mbq.atomiq.svghttps://img.shields.io/pypi/pyversions/mbq.atomiq.svghttps://img.shields.io/travis/managedbyq/mbq.atomiq/master.svg

安装

$ pip install mbq.atomiq

开始

  1. 在django应用程序的设置中添加mbq.atomiq已安装的应用程序
  2. 将特定设置添加到同一设置文件中。这些用于度量。
ATOMIQ={'env':CURRENT_ENV,'service':YOUR_SERICE_NAME,}
  1. 为应用程序所需的每个队列类型设置使用者。mbq.atomiq为此提供了一个方便的管理命令:
python -m manage atomic_run_consumer --queue sns

python -m manage atomic_run_consumer --queue sqs

python -m manage atomic_run_consumer --queue celery

注意,atomiq将使用芹菜任务name属性导入并调用该任务。默认情况下,芹菜将任务名称设置为path.to.task.module.task_function_name。重写任务的名称将导致atomiq中断,所以plz不会这样做。

为了确保我们没有保留成功执行或删除的任务,我们还有一个清理管理命令,默认情况下,该命令将清理所有超过30天的已处理任务。可以覆盖该默认值。

python -m manage atomic_cleanup_old_tasks

or

python -m manage atomic_cleanup_old_tasks --days N

or

python -m manage atomic_cleanup_old_tasks --minutes N
  1. 使用它!
importmbq.atomiqmbq.atomiq.sns_publish(topic_arn,message)mbq.atomiq.sqs_publish(queue_url,message)mbq.atomiq.celery_publish(celery_task,*task_args,**task_kwargs)

测试

测试自动位于Travis CI https://travis-ci.org/managedbyq/mbq.atomiq,但也可以使用docker-compose在本地运行测试。 我们现在使用tox在多个python环境中进行本地测试。在此之前,请使用pyenv安装以下Python解释器:cpython{2.7、3.5、3.6}和pypy3

$ docker-compose up py36-pg|py36-mysql|py37-pg|py37-mysql

其他服务中的测试

在其他服务中使用atomiq时,我们不想模拟atomiq的发布函数。这是因为atomiq包含了检查所有使用都包装在事务中的功能,并且可以解释django在测试用例中添加的事务。为了允许您测试预期的任务是否已添加到队列中,我们公开了一个测试实用程序模块。

发布新版本

  1. __version__.py
  2. 转到github中的Releases并“起草新版本”
  3. 创建新版本后,travis ci将获取新版本并将其发送到pypi

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

推荐PyPI第三方库


热门话题
java WebClient请求级别超时抛出名为default onErrorDropped的运算符   java JAXB外部绑定文件错误   Freemarker中的java转义宏参数值   java正在同步来自不同对象{已编辑}的线程   java如何在另一个类上更新活动中的元素   java Hibernate连接查询   java可以使用Apache Crunch创建类似于图形的数据结构吗?   java在JLabel的开头加上3个点   java 安卓应用程序显示线程错误   java@RequestBody在Spring中总是空的   java Android异步任务永远不会结束   具有多个属性的java Jaxws枚举   java中的安卓 Stripe InvalidRequestException   多线程java。util。非多线程程序中的ConcurrentModificationException   Minecraft Java插件如何删除HashMap中存储的所有块   空Java字符串的大小   从AJP连接器请求检索Shibboleth属性的java   oracle11g将Java类文件加载到Oracle数据库