{ "info": { "author": "Peter Hull", "author_email": "z8kflt@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only" ], "description": "\nsisy\n====\n\nSisy is a Django package which uses the `Channels `_ message-passing infrastructure to run functions\nin worker processes. In other words, it lets you hand off work to background processes in various\nways, rather than having long-running processes stall your web requests.\n\nSisy has the following requirements and compatibilities:\n\n* Python 3.6 or above\n* `Django `_ 1.11 or above, including 2.x\n* `Channels `_ 1.1.8 or above (earlier versions may work but no guarantees)\n\nSisy is released under the `MIT License `_.\n\n.. _ya-task-runner:\n\nWhy yet another task runner package?\n------------------------------------\n\nThere are already several fine Python packages which function as task runners,\nsuch as `celery `_, `rq `_,\nand others, but I wanted to have a package that worked seamlessly within the\nChannels architecture, in order to avoid duplication of effort.\n\nDesign goals\n------------\n\nSisy has a few design goals that it is good to keep in mind when evaluating\nwhether it will fit your particular use case:\n\n* It is designed to work with tasks that are similar to those one would\n work with using the Unix *cron* utility. In other words, its tasks\n are expected to run on a frequency scale of minutes, hours, and days rather\n than seconds or milliseconds.\n\n* It is designed for small to medium installations. I think it probably could\n handle a surprisingly large site, since it is possible to separate its\n workers, objects, and messages onto their own infrastructure through the\n use of such tools as Django database routing, channel layers, and separate\n redis servers. But it has not been tested in these scenarios.\n\n* It is designed with developer ease of use in mind. It does lack certain facilities\n such as interruptibility, but such features can be designed into the functions\n that handle the task messages, and of course those functions can in turn send\n other messages if necessary.\n\nQuick howto\n-----------\n\nYou really need to read the `full docs `_, but here\nis a super-fast crash course.\n\n.. code-block:: python\n\n from sisy.models import task_with_callable\n\n task = task_with_callable(\n 'mymodule.myfunction', # dotted path to function\n label='weekday-business-hours-function', # any string you want here really\n schedule='0,15,30,45 9-17 * * mon-fri', # Run every 15 minutes 9am-5pm on weekdays\n )\n\n # The task doesn't become active until you save it\n task.save()\n\nThere are other goodies in there, such as one-shot task runs, specified number of iterations,\nbeginning and ending dates, etc. You can also create tasks in Django data migration files,\nwhich can be really handy for standard tasks you want to always be running. Look at the docs.\n\n\n Note: There is a demo project in the github repo, under ``extra/demo``. This\n project is very basic, but provides concrete examples of using Sisy in\n various ways, including data migrations. This project also functions\n as the host project for generating the docs.\n\nYou can find the full documentation for Sisy at `the Github Pages site for this repo `_.\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/phoikoi/sisy", "keywords": "django,channels,cron,croniter,background-tasks", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "sisy", "package_url": "https://pypi.org/project/sisy/", "platform": "", "project_url": "https://pypi.org/project/sisy/", "project_urls": { "Homepage": "https://github.com/phoikoi/sisy" }, "release_url": "https://pypi.org/project/sisy/1.0b3/", "requires_dist": [ "django (>=1.11)", "channels", "croniter", "arrow", "pytz" ], "requires_python": ">=3.6", "summary": "A lightweight repeating task runner app for Django", "version": "1.0b3" }, "last_serial": 3390560, "releases": { "1.0b1": [ { "comment_text": "", "digests": { "md5": "a63d7f6cbe7effc5ad36fbd23e2d86d2", "sha256": "6bcd70108bea43f11507d866e1d389fc6955df89133de8deea31382a3150fe35" }, "downloads": -1, "filename": "sisy-1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "a63d7f6cbe7effc5ad36fbd23e2d86d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13483, "upload_time": "2017-12-05T05:18:08", "url": "https://files.pythonhosted.org/packages/4d/bc/20571479de4b86fd602d84529a1c1327ff461d6303d8cd85dad6e64d0239/sisy-1.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e084a0cdc5b7b2d916b8ce4302466839", "sha256": "e7c28ce3eb741dafe7f664a28260b7c8ad8478397533bc152685143f4fa8068f" }, "downloads": -1, "filename": "sisy-1.0b1.tar.gz", "has_sig": false, "md5_digest": "e084a0cdc5b7b2d916b8ce4302466839", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8725, "upload_time": "2017-12-05T05:18:09", "url": "https://files.pythonhosted.org/packages/d5/ee/af8cbd637f4a833894bcabb34f42cd33a2de777a950198e6cc2ea19544c7/sisy-1.0b1.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "71593ca02e837d7eb77e0bcae955b284", "sha256": "01d242f0e98a73c75ec91a8e1a1e94333465bb527198869507076f894337384e" }, "downloads": -1, "filename": "sisy-1.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "71593ca02e837d7eb77e0bcae955b284", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14400, "upload_time": "2017-12-05T13:13:29", "url": "https://files.pythonhosted.org/packages/82/67/9f32043c86b29b1ebb246e20889cd6cfd48b97868f1f3e237f5adbcddbfc/sisy-1.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b21d6c52b617153780ecc139557864c6", "sha256": "8709146c500b0f2e4cbea810a851339dbe5a3e8ff03ff66c81e911c7f98c73d9" }, "downloads": -1, "filename": "sisy-1.0b3.tar.gz", "has_sig": false, "md5_digest": "b21d6c52b617153780ecc139557864c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9122, "upload_time": "2017-12-05T13:13:31", "url": "https://files.pythonhosted.org/packages/d8/b6/4c1255460560c165766c9bca67f977d239b82e41ae451a19d8e88b4e48da/sisy-1.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "71593ca02e837d7eb77e0bcae955b284", "sha256": "01d242f0e98a73c75ec91a8e1a1e94333465bb527198869507076f894337384e" }, "downloads": -1, "filename": "sisy-1.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "71593ca02e837d7eb77e0bcae955b284", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14400, "upload_time": "2017-12-05T13:13:29", "url": "https://files.pythonhosted.org/packages/82/67/9f32043c86b29b1ebb246e20889cd6cfd48b97868f1f3e237f5adbcddbfc/sisy-1.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b21d6c52b617153780ecc139557864c6", "sha256": "8709146c500b0f2e4cbea810a851339dbe5a3e8ff03ff66c81e911c7f98c73d9" }, "downloads": -1, "filename": "sisy-1.0b3.tar.gz", "has_sig": false, "md5_digest": "b21d6c52b617153780ecc139557864c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9122, "upload_time": "2017-12-05T13:13:31", "url": "https://files.pythonhosted.org/packages/d8/b6/4c1255460560c165766c9bca67f977d239b82e41ae451a19d8e88b4e48da/sisy-1.0b3.tar.gz" } ] }