{ "info": { "author": "makoto tsuyuki", "author_email": "mtsuyuki@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Topic :: System :: Distributed Computing" ], "description": "====================================================\nQamasu . Job Queue Application written in Python\n====================================================\n\n\nQamasu is JobQueue system that respects TheSchwartz.\n\nSuited to load leveling.\n\nImplemented using optimistic lock.\n\nRequirements\n--------------------------------------\n\n* Python>=2.6\n* Django>=1.0\n\nPython3 needs Django1.5\n\nUsage\n--------------------------------------\n\nSet Qamasu up!\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nQamasu is a Django application.\n\nYou need add qamasu to your or new django project's INSTALLED_APPS.\n\nAnd //manage.py syncdb//.\n\nWrite your worker.\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDefine **GRAB_FOR** in seconds that is max time worker grabbed for a work.\n\nDefine **def work_safely(manager, job):** that is a work you need.\n\nSee `sample worker`_ in workers directory for detail.\n\n.. _`sample worker`: http://bitbucket.org/tsuyukimakoto/qamasu/src/tip/workers/random_wait.py\n\nRegistration\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nYou need add worker to abilities.\n\nregister_func insert fuction record into database table if not exist.\n\n::\n\n >>> from qamasu import Qamasu\n >>> qamasu = Qamasu([])\n >>> qamasu.register_func('workers.random_wait')\n\nQueue!\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nOnce fuction is registered to qamasu, you can enqueue jobs.\n\nAdd hundreds Queues.::\n\n >>> from qamasu import Qamasu\n >>> from random import uniform\n >>> qamasu = Qamasu(['workers.random_wait',])\n >>> for x in xrange(1,500):\n arg = dict(random_number=uniform(1,5))\n qamasu.enqueue('workers.random_wait', arg)\n\nAdd a highest-priority queue.::\n\n >>> qamasu.enqueue('workers.random_wait', dict(random_number=uniform(1,5)), priority=1)\n\nWork! Work! Work!\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nProcess enqueued job.\n\n1. Instantiate Qamasu with availabilities.\n2. call work method. infinite loop inside this method.\n\nwork method process queue as FIFO.\n\n::\n\n >>> from qamasu import Qamasu\n >>> qamasu = Qamasu(['workers.random_wait',])\n >>> qamasu.work()\n\nUse work_prioritizing method if you tend to process job respects to priority.\n::\n\n >>> from qamasu import Qamasu\n >>> qamasu = Qamasu(['workers.random_wait',])\n >>> qamasu.work_prioritizing()\n\nCaution!\n--------------------------------------\n\nFor MySQL backend\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nYou must set worker's transaction isolation level to read commited before working qamasu when you use InnoDB.\n::\n\n >>> from django.db import connection\n >>> from qamasu import Qamasu\n >>> connection.cursor().execute('set session transaction isolation level read committed')\n >>> qamasu = Qamasu(['workers.random_wait',])\n >>> qamasu.work()\n\nOr you have to set transaction isolation level read committed. It's global settings and dangerous.\n::\n\n [mysqld]\n transaction-isolation=Read-Committed", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/tsuyukimakoto/qamasu", "keywords": "queue,job,django,distributed", "license": "New BSD", "maintainer": null, "maintainer_email": null, "name": "qamasu", "package_url": "https://pypi.org/project/qamasu/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/qamasu/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/tsuyukimakoto/qamasu" }, "release_url": "https://pypi.org/project/qamasu/0.5/", "requires_dist": null, "requires_python": null, "summary": "Qamasu is Job Queue system that respects TheSchwartz.", "version": "0.5" }, "last_serial": 798302, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "e4058a2cad0e7489a96ff1372d2d677f", "sha256": "9fbf716a8cc46e40e3e41c7803ff49e68624c13646453fd81c7a8323dd649b90" }, "downloads": -1, "filename": "qamasu-0.3.tar.gz", "has_sig": false, "md5_digest": "e4058a2cad0e7489a96ff1372d2d677f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6569, "upload_time": "2012-12-23T05:30:20", "url": "https://files.pythonhosted.org/packages/83/a2/743d580388b7e227b441b2a210c71e3a576d42e5c2db6213a69430e0c62f/qamasu-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "dfbded4a0208b97982c165aba0e1eba9", "sha256": "4d7f9bb7614de12a77e3af29dd47601a5aa032072c86b8a442d8fa51af290ba5" }, "downloads": -1, "filename": "qamasu-0.4.tar.gz", "has_sig": false, "md5_digest": "dfbded4a0208b97982c165aba0e1eba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6482, "upload_time": "2013-01-19T08:59:09", "url": "https://files.pythonhosted.org/packages/f4/ce/72980a6ae262aa42d8818abcf0beefa8f59e68c076664cd27e460cb465df/qamasu-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "ad72fcebb9745389c371e09bffc8ce2f", "sha256": "fe2910f2b16c2933fbb8b6344b86a3bb8b0de1620b3fe13e47bcccd1ba728d0f" }, "downloads": -1, "filename": "qamasu-0.5.tar.gz", "has_sig": false, "md5_digest": "ad72fcebb9745389c371e09bffc8ce2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6534, "upload_time": "2013-02-10T04:29:00", "url": "https://files.pythonhosted.org/packages/87/d2/8a1dbf840411f76e250a4f1f529d4afbdcd8f4182aac817ff9ceab1f9280/qamasu-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad72fcebb9745389c371e09bffc8ce2f", "sha256": "fe2910f2b16c2933fbb8b6344b86a3bb8b0de1620b3fe13e47bcccd1ba728d0f" }, "downloads": -1, "filename": "qamasu-0.5.tar.gz", "has_sig": false, "md5_digest": "ad72fcebb9745389c371e09bffc8ce2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6534, "upload_time": "2013-02-10T04:29:00", "url": "https://files.pythonhosted.org/packages/87/d2/8a1dbf840411f76e250a4f1f529d4afbdcd8f4182aac817ff9ceab1f9280/qamasu-0.5.tar.gz" } ] }