{ "info": { "author": "('Managed by Q, Inc.',)", "author_email": "open-source@managedbyq.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries" ], "description": "mbq.atomiq: database-backed queues\n==================================\n\n.. image:: https://img.shields.io/pypi/v/mbq.atomiq.svg\n :target: https://pypi.python.org/pypi/mbq.atomiq\n\n.. image:: https://img.shields.io/pypi/l/mbq.atomiq.svg\n :target: https://pypi.python.org/pypi/mbq.atomiq\n\n.. image:: https://img.shields.io/pypi/pyversions/mbq.atomiq.svg\n :target: https://pypi.python.org/pypi/mbq.atomiq\n\n.. image:: https://img.shields.io/travis/managedbyq/mbq.atomiq/master.svg\n :target: https://travis-ci.org/managedbyq/mbq.atomiq\n\nInstallation\n------------\n\n.. code-block:: bash\n\n $ pip install mbq.atomiq\n\n\nGetting started\n---------------\n\n1. Add `mbq.atomiq` to `INSTALLED_APPS` in your django application's settings\n\n2. Add `ATOMIQ` specific settings to that same settings file. Those are used for metrics.\n\n.. code-block:: python\n\n ATOMIQ = {\n 'env': CURRENT_ENV,\n 'service': YOUR_SERICE_NAME,\n }\n\n3. Set up consumers for each queue type that your app needs. `mbq.atomiq` provides a handy management command for that:\n\n.. code-block:: bash\n\n python -m manage atomic_run_consumer --queue sns\n\n python -m manage atomic_run_consumer --queue celery\n\nNote that atomiq will use the celery task ``name`` attribute to import and call the task. By default, celery sets the task name to be the ``path.to.task.module.task_function_name``. Overriding the name of a task will cause atomiq to break, so plz don't do this.\n\nTo make sure we're not holding on to successfully executed or deleted tasks we also have a clean up management command, that by default will clean up all processed tasks that are older than 30 days. That default can be overriden.\n\n.. code-block:: bash\n\n python -m manage atomic_cleanup_old_tasks\n\n or\n\n python -m manage atomic_cleanup_old_tasks --days N\n\n or\n\n python -m manage atomic_cleanup_old_tasks --minutes N\n\n4. Use it!\n\n.. code-block:: python\n\n import mbq.atomiq\n\n mbq.atomiq.sns_publish(topic_arn, message)\n\n mbq.atomiq.celery_publish(celery_task, *task_args, **task_kwargs)\n\nMonitoring\n----------\n\n\n\nTesting\n-------\nTests are automatically in ``Travis CI https://travis-ci.org/managedbyq/mbq.atomiq`` but you can also run tests locally using ``docker-compose``.\nWe now use `tox` for local testing across multiple python environments. Before this use ``pyenv`` to install the following python interpreters: cpython{2.7, 3.5, 3.6} and pypy3\n\n.. code-block:: bash\n\n $ docker-compose up py36-pg|py36-mysql|py37-pg|py37-mysql\n\nTesting in Other Services\n-------------------------\nWhen using atomiq in other services, we don't want to mock out atomiq's publish functions. This is because atomiq includes functionality to check that all usages are wrapped in a transaction, and can account for transactions added by Django in test cases. To allow you to test that the tasks you expect have been added the queue, we expose a `test_utils` module.\n\n\nShipping a New Release\n----------------------\n1. Bump the version in ``__version__.py``\n2. Go to ``Releases`` in GitHub and \"Draft a New Release\"\n3. After creating a new release, Travis CI will pick up the new release and ship it to PyPi", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/managedbyq/mbq.atomiq", "keywords": "", "license": "Apache 2.0", "maintainer": "('Managed by Q, Inc.',)", "maintainer_email": "open-source@managedbyq.com", "name": "mbq.atomiq", "package_url": "https://pypi.org/project/mbq.atomiq/", "platform": "", "project_url": "https://pypi.org/project/mbq.atomiq/", "project_urls": { "Homepage": "https://github.com/managedbyq/mbq.atomiq" }, "release_url": "https://pypi.org/project/mbq.atomiq/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "MBQ Atomiq", "version": "1.1.0" }, "last_serial": 5898048, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ac0447c945b24d04be6a35998a4ba866", "sha256": "28821c78105ebcba26e3207b4ad6f1dff07527938d7dc434312ab4c4cb0e1cd0" }, "downloads": -1, "filename": "mbq.atomiq-0.0.1.tar.gz", "has_sig": false, "md5_digest": "ac0447c945b24d04be6a35998a4ba866", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12632, "upload_time": "2018-09-20T15:15:10", "url": "https://files.pythonhosted.org/packages/2e/0d/507d8cdb467318959318bc2d26bd3733829a6bc55a73439cb1962d0db942/mbq.atomiq-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "93657aa160dc7d9d4919eaa0725041e7", "sha256": "1f5de7f8aaf72b8bd86b3c77007dfa728bb70353d08860cea39857ad9a073c9b" }, "downloads": -1, "filename": "mbq.atomiq-0.0.10.tar.gz", "has_sig": false, "md5_digest": "93657aa160dc7d9d4919eaa0725041e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16865, "upload_time": "2018-10-11T19:41:53", "url": "https://files.pythonhosted.org/packages/a5/36/947814972a82f64412b3d84d85fda5d9cf99f72610ca15d211b2d66cfa86/mbq.atomiq-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "1ab97e92511f1cd40da31c8f1a817afd", "sha256": "57281d8385e17b61e1d211523af3ceb49995dcff5b93ba8eb7051e0334e8f31b" }, "downloads": -1, "filename": "mbq.atomiq-0.0.11.tar.gz", "has_sig": false, "md5_digest": "1ab97e92511f1cd40da31c8f1a817afd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16764, "upload_time": "2018-10-18T20:14:51", "url": "https://files.pythonhosted.org/packages/f0/25/2e47eaaa7157018ff95df065d600f40606557b106e2587d44388fdf37c95/mbq.atomiq-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "e7014800080d15aca3fcc84dd9a0a120", "sha256": "58e0711a874d15f49dd5f699fd1a08dd9e73b2dca6b4b294ac590855da8d13e5" }, "downloads": -1, "filename": "mbq.atomiq-0.0.12.tar.gz", "has_sig": false, "md5_digest": "e7014800080d15aca3fcc84dd9a0a120", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16753, "upload_time": "2018-10-23T21:17:27", "url": "https://files.pythonhosted.org/packages/db/76/e314551593438c2c71db687d5e549a417a9d6e6069617a11032822f18b3f/mbq.atomiq-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "11de0bb6bb554895c12ecf69552e69e7", "sha256": "2d9fc1e01b3fef37acaaf92862e71d93d0228165492cd69d14c5618915b3563b" }, "downloads": -1, "filename": "mbq.atomiq-0.0.13.tar.gz", "has_sig": false, "md5_digest": "11de0bb6bb554895c12ecf69552e69e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16622, "upload_time": "2018-10-29T21:40:18", "url": "https://files.pythonhosted.org/packages/51/ca/d753764a89f24d0494f46095204cf68835485293a68633ea3c76bfa7885d/mbq.atomiq-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "9ff34aedde61547ea70715ee305cc597", "sha256": "950ef0f638ecb643b6d0fa21da780077cfef50363460e30a18757fe96251e1a5" }, "downloads": -1, "filename": "mbq.atomiq-0.0.14.tar.gz", "has_sig": false, "md5_digest": "9ff34aedde61547ea70715ee305cc597", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16729, "upload_time": "2018-11-09T16:59:45", "url": "https://files.pythonhosted.org/packages/19/45/b765d7a1ef78a5779759263169864e187cc4715c167c4ddd30ab3861971d/mbq.atomiq-0.0.14.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1525ecff4a1c3daa85e9923b2c5fbd29", "sha256": "76c5a2fe5e69f24bec6d4c126d5375f2c573ed9623bcd219ec46254e46fec4f7" }, "downloads": -1, "filename": "mbq.atomiq-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1525ecff4a1c3daa85e9923b2c5fbd29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12631, "upload_time": "2018-09-21T14:42:43", "url": "https://files.pythonhosted.org/packages/42/9a/50ed5c609c94f606ed65f8eb1c2b73a371b7d6ef863f21e9ca479a7fbf5e/mbq.atomiq-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "afe2b9c2778d55a0604b6eed11f870cd", "sha256": "d7b791b025da551fb9713d0d6e744a44bcc6a709f7f1b26554e9deed6a08302b" }, "downloads": -1, "filename": "mbq.atomiq-0.0.3.tar.gz", "has_sig": false, "md5_digest": "afe2b9c2778d55a0604b6eed11f870cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15121, "upload_time": "2018-09-25T15:21:47", "url": "https://files.pythonhosted.org/packages/7b/ea/6ccf40536a97a51a55cb5916b1ab8ff34d3c1480c08348e67e984ad43ac8/mbq.atomiq-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "29a283a433d66e84a5abe3ece19abd7e", "sha256": "320a9761e40c0b933a03ba03b6f8713e2469f8ece84b888441d901966897d369" }, "downloads": -1, "filename": "mbq.atomiq-0.0.4.tar.gz", "has_sig": false, "md5_digest": "29a283a433d66e84a5abe3ece19abd7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15182, "upload_time": "2018-09-26T16:33:30", "url": "https://files.pythonhosted.org/packages/87/a2/c1359f24e237f7c5d869a267545186dcb976b1e1c183b8edd737d395d500/mbq.atomiq-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "5e7fe5b9af24f0562357844673772cb5", "sha256": "e5a3b787e378ea725314a7346e8becc686645e8a2e568ae2e5f8dd7544d9c061" }, "downloads": -1, "filename": "mbq.atomiq-0.0.5.tar.gz", "has_sig": false, "md5_digest": "5e7fe5b9af24f0562357844673772cb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15207, "upload_time": "2018-09-26T19:12:22", "url": "https://files.pythonhosted.org/packages/3d/22/13bc247af03a3e1bbba7a8a8f151114bf579abee3d1afc88a9210da5076a/mbq.atomiq-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "dad85b4b4cda5fc5f915d364880d008e", "sha256": "c52d8c572fc0ef942f8c68f541eab72ba6614267e69b7e579512739839ee728f" }, "downloads": -1, "filename": "mbq.atomiq-0.0.6.tar.gz", "has_sig": false, "md5_digest": "dad85b4b4cda5fc5f915d364880d008e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15783, "upload_time": "2018-09-27T18:36:38", "url": "https://files.pythonhosted.org/packages/7e/b9/dae6c081920dc305883a5aa01312d5beb00ae67b5f313fb7390f833cd4a8/mbq.atomiq-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e8a9e4000cca04ba8deaa05b1acdee41", "sha256": "fe19bdf6c4892673349c3e8dfdd81cbd173050ae83191f9dda0095aec7977694" }, "downloads": -1, "filename": "mbq.atomiq-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e8a9e4000cca04ba8deaa05b1acdee41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15425, "upload_time": "2018-09-27T19:34:35", "url": "https://files.pythonhosted.org/packages/e5/7d/72e974b9ef92339d98aa49994dbc0e20430f6e7a9260b9f4a3d62b885ba7/mbq.atomiq-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "388e34111c185575c28a29859aca665c", "sha256": "b0debeabde123d4287c9bc05148e3a4ed41899a97c15059b6b147a3b34eb1bd1" }, "downloads": -1, "filename": "mbq.atomiq-0.0.8.tar.gz", "has_sig": false, "md5_digest": "388e34111c185575c28a29859aca665c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16188, "upload_time": "2018-10-01T21:20:11", "url": "https://files.pythonhosted.org/packages/31/5b/9cdd2fd367b0336532a4aa05824ca2eced52b4e124a8b8f384826eebe62d/mbq.atomiq-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "6580d305152c82c44f690163d42a6621", "sha256": "fe33719841cda6ae327e18b7e9d740f70f8cfabe2fc8b32ee544b0ac73a9d0f0" }, "downloads": -1, "filename": "mbq.atomiq-0.0.9.tar.gz", "has_sig": false, "md5_digest": "6580d305152c82c44f690163d42a6621", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16860, "upload_time": "2018-10-10T19:51:52", "url": "https://files.pythonhosted.org/packages/e8/79/42b8352ada4fa6e71f11bb3c154bbe843ebb5cc6885718409efc846ee116/mbq.atomiq-0.0.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "0590e981e1e3efd13c015613eb9c0450", "sha256": "83ccf49d9fb3c4dd130143f7cefd82eaee9768c62162f14665b0a0eb69680211" }, "downloads": -1, "filename": "mbq.atomiq-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0590e981e1e3efd13c015613eb9c0450", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16754, "upload_time": "2019-01-18T17:53:37", "url": "https://files.pythonhosted.org/packages/b9/9e/d8e8c53934f9f3ef455db6b651defa358352d7354b4a397039621646edd1/mbq.atomiq-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "915f77a5655c2a494c725e2a720957b8", "sha256": "397c72202389fae7da1ee7f18e256737c8d3718ec79caab6bfd7dab42af8260a" }, "downloads": -1, "filename": "mbq.atomiq-1.0.1.tar.gz", "has_sig": false, "md5_digest": "915f77a5655c2a494c725e2a720957b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17013, "upload_time": "2019-03-20T20:38:05", "url": "https://files.pythonhosted.org/packages/4f/b9/d9c9a5ece93d30580ecc574245a83c910df5c5d8186801b4c78f9d19b9d1/mbq.atomiq-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "efdcff3b973149fa7560d674aa9d9449", "sha256": "5cfbcf7b6383a40e41f1a7689627cb0ae8c395040ecf91f10bfe4dd8ec17924d" }, "downloads": -1, "filename": "mbq.atomiq-1.0.2.tar.gz", "has_sig": false, "md5_digest": "efdcff3b973149fa7560d674aa9d9449", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17381, "upload_time": "2019-07-10T19:21:05", "url": "https://files.pythonhosted.org/packages/86/35/1180387f71f54d734300111dafe1271dae82816921b268ef1546945b3454/mbq.atomiq-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7e0e47062ea2939f949e905c61a2b008", "sha256": "84c3fd92a874646a0199a4f2cd39a0f0e705c0d804a4c14f41e4c263af4b3799" }, "downloads": -1, "filename": "mbq.atomiq-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7e0e47062ea2939f949e905c61a2b008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16824, "upload_time": "2019-09-27T20:44:54", "url": "https://files.pythonhosted.org/packages/69/68/1ff33339e4346526c76e01fcf3d7b5d78f897f2de55afdb15b9e3bf89429/mbq.atomiq-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e0e47062ea2939f949e905c61a2b008", "sha256": "84c3fd92a874646a0199a4f2cd39a0f0e705c0d804a4c14f41e4c263af4b3799" }, "downloads": -1, "filename": "mbq.atomiq-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7e0e47062ea2939f949e905c61a2b008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16824, "upload_time": "2019-09-27T20:44:54", "url": "https://files.pythonhosted.org/packages/69/68/1ff33339e4346526c76e01fcf3d7b5d78f897f2de55afdb15b9e3bf89429/mbq.atomiq-1.1.0.tar.gz" } ] }