{ "info": { "author": "aohan237", "author_email": "aohan237@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development", "Topic :: Software Development :: Libraries" ], "description": "# async_cron\n[![Downloads](https://pepy.tech/badge/async-cron)](https://pepy.tech/project/async-cron)\n[![PyPI version](https://badge.fury.io/py/async-cron.svg)](https://badge.fury.io/py/async-cron)\n\nthis repo is influenced by schedule.\n\nwe supply a async scheduler and async function support\n\nyou can easily integrate this lib to you async program,with no blocking\n\n## Install\n\n--------------\n\npip install async-cron\n\n## Usage examples\n\n--------------\n\n\n```python\nimport asyncio\n\nfrom async_cron.job import CronJob\nfrom async_cron.schedule import Scheduler\n\n\nasync def test(*args, **kwargs):\n print(args, kwargs)\n\n\ndef tt(*args, **kwargs):\n print(args, kwargs)\n\n\nmsh = Scheduler(locale=\"zh_CN\")\nmyjob = CronJob(name='test', run_total=3).every(\n 5).second.go(test, (1, 2, 3), name=123)\njob2 = CronJob(name='exact', tolerance=100).at(\n \"2019-01-15 16:12\").go(tt, (5), age=99)\njob3 = CronJob(name='very_hour').every().hour.at(\n \":44\").go(tt, (5), age=99)\n\njob3 = CronJob(name='hour').every().hour.at(\n \":00\").go(tt, (5), age=99)\njob4 = CronJob(name='minute').every(1).minute.go(tt, (5), age=99)\njob5 = CronJob(name='weekday').weekday(2).at(\"11:18\").go(tt, (5), age=99)\njob6 = CronJob(name='monthday').monthday(16).at(\"11:22\").go(tt, (5), age=99)\njob7 = CronJob(name='monthday').every(5).monthday(\n 16).at(\"11:22\").go(tt, (5), age=99)\n\n\nmsh.add_job(myjob)\nmsh.add_job(job2)\nmsh.add_job(job3)\nmsh.add_job(job4)\nmsh.add_job(job5)\nmsh.add_job(job6)\nmsh.add_job(job7)\n\n# jobload is only a special job,who gen jobs from config\n# below means, this job load will check every 1 second for cron updates\n# if any updates found,new job will be add to scheduler\n# you dont have the direct way to delete jobs\n# but you can modify the crons total_times to 0 or 1 to delete it\n# by default,FileJobLoader use MultiThread,you can use MultiProcess by add\n# thread=False\n\nf_cron = FileJobLoader(name='f_cron', file_path='t_cron', log_path='.',thread=False)\n\nfjob = CronJob(name='fjob', run_total=1).every(\n 1).second.go(f_cron.run, msh)\n\nmsh.add_job(fjob)\n\n\nloop = asyncio.get_event_loop()\n\ntry:\n loop.run_until_complete(msh.start())\nexcept KeyboardInterrupt:\n print('exit')\n```\n\n## cron file useage:\n\nparameter separate by blank.in item separate by comma\n\ncron|name|job|env|run_times\n-|-|-|-|-\n`*/1,*,*,*,*,*`|test|/bin/python,tt.py|aa=123,bb=345|10\n\nexample as follow:\n\ncommon cron \n\n`*/1,*,*,*,*,*` test /bin/python,tt.py aa=123,bb=345 1\n\ndelete cron \n`*/1,*,*,*,*,*` test /bin/python,tt.py aa=123,bb=345 0\n\ncron only support: \n `*`,`10`,`*/10` format. which is finished mostly screen\n\n\nLicense\n-------\n\nThe async_cron is offered under MIT license.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aohan237/async_cron", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "async-cron", "package_url": "https://pypi.org/project/async-cron/", "platform": "POSIX", "project_url": "https://pypi.org/project/async-cron/", "project_urls": { "Homepage": "https://github.com/aohan237/async_cron" }, "release_url": "https://pypi.org/project/async-cron/1.6.1/", "requires_dist": [ "arrow" ], "requires_python": "", "summary": "asyncio crontab utils", "version": "1.6.1" }, "last_serial": 5976050, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "c9c038f8aaa152cdaa42a00feaddc516", "sha256": "a3abee08a99a69c894300fce9767cc02e0d17136db3e5e7d4ae0a9e41454357e" }, "downloads": -1, "filename": "async_cron-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c9c038f8aaa152cdaa42a00feaddc516", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4808, "upload_time": "2019-01-15T09:16:46", "url": "https://files.pythonhosted.org/packages/a6/33/3f098dfa241caeabba00ab0a7fac514f3f32ad42cdb0cd784eb358e5b925/async_cron-1.0.0-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4b1390e57dcc49bf66597f0c3e40eb2b", "sha256": "1f5873b2bcbac429cef678ab6b622be202abafe77e7ebaabd267cfa728965672" }, "downloads": -1, "filename": "async_cron-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4b1390e57dcc49bf66597f0c3e40eb2b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4900, "upload_time": "2019-01-15T09:51:12", "url": "https://files.pythonhosted.org/packages/ba/64/9bbb2e7df467dd4c1685179c247d6d67d40032c017dec60b2c79c9f6a216/async_cron-1.1.0-py3-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "5a0ddeadc7dd56cbc22cf808c253488d", "sha256": "90e05d6de1b36f3ab26b9a6047726f768e463deaca8f3088cd5ea8ba3fee9a1c" }, "downloads": -1, "filename": "async_cron-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5a0ddeadc7dd56cbc22cf808c253488d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5997, "upload_time": "2019-01-16T03:27:28", "url": "https://files.pythonhosted.org/packages/d9/26/0c786ed046ef9d2f33d0a9eba1f12f2d7647202b9a86753d41bdb23e0541/async_cron-1.2.0-py3-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e43a4d4db25ded4f676a876d58bd777f", "sha256": "b382df6029e4a1e87985ee27ea987e0fb56022f8a170d65e3028e9ee0b40c689" }, "downloads": -1, "filename": "async_cron-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e43a4d4db25ded4f676a876d58bd777f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6084, "upload_time": "2019-01-16T03:43:02", "url": "https://files.pythonhosted.org/packages/6f/2c/8281c72897627efa58c51509c93040c540319548989f00fde28b656bf362/async_cron-1.2.1-py3-none-any.whl" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "b302b2f80b9bba774481676fb22ffefa", "sha256": "e5ea415ee3b5300fadb54ba27c8264f16e51aa0ec869aa73df2c48a2a72e983f" }, "downloads": -1, "filename": "async_cron-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b302b2f80b9bba774481676fb22ffefa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6086, "upload_time": "2019-01-17T05:40:32", "url": "https://files.pythonhosted.org/packages/4a/e3/aad81e63fbfba9aa092dd10fb77f1a6f4c92736828ea181906c02f0e75f2/async_cron-1.2.2-py3-none-any.whl" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "0f8eeccb9b4e8a57f81c6ffa88d3e29a", "sha256": "c57a3837d1d0b9f391730ac1747198a25e1ddd40f8b1ca9c8c800f9e55ea3337" }, "downloads": -1, "filename": "async_cron-1.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f8eeccb9b4e8a57f81c6ffa88d3e29a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8563, "upload_time": "2019-01-31T08:05:37", "url": "https://files.pythonhosted.org/packages/43/1c/3831bc610e3f47f97855afa6db76b710a085e3e09cc4f6b8d56faf8cf43e/async_cron-1.5.0-py3-none-any.whl" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "09340581ad0539e2fa9ac3127229bbfd", "sha256": "bff465b592b18bc96bed05dd9b2371906b2829541a0c8ebed8bd6c0fcada4e14" }, "downloads": -1, "filename": "async_cron-1.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "09340581ad0539e2fa9ac3127229bbfd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8820, "upload_time": "2019-06-17T02:50:13", "url": "https://files.pythonhosted.org/packages/d2/81/5501f23e934e6d4e37867cba11206667a8a3a06c2ff1cabacd39cbd53878/async_cron-1.6.0-py3-none-any.whl" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "8fca1bd15ceef3c4fe02f62ccc1f1420", "sha256": "f6ed0619ecf632b27ecd0dc45a1ec6cc01e1f8bc9bd76776a189e900173899a7" }, "downloads": -1, "filename": "async_cron-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8fca1bd15ceef3c4fe02f62ccc1f1420", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8939, "upload_time": "2019-10-15T10:13:36", "url": "https://files.pythonhosted.org/packages/64/bf/e1b14071c9a55de1b6503817979b17281bfc5636051b6ee1885c075d8b07/async_cron-1.6.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8fca1bd15ceef3c4fe02f62ccc1f1420", "sha256": "f6ed0619ecf632b27ecd0dc45a1ec6cc01e1f8bc9bd76776a189e900173899a7" }, "downloads": -1, "filename": "async_cron-1.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8fca1bd15ceef3c4fe02f62ccc1f1420", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8939, "upload_time": "2019-10-15T10:13:36", "url": "https://files.pythonhosted.org/packages/64/bf/e1b14071c9a55de1b6503817979b17281bfc5636051b6ee1885c075d8b07/async_cron-1.6.1-py3-none-any.whl" } ] }