{ "info": { "author": "ruifengyun", "author_email": "rfyiamcool@163.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.0", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# ControlSpeed \n\u8fd9\u9879\u76ee\u662f\u7528\u6765\u63a7\u5236\u51fd\u6570\u8c03\u7528\u7684\u9891\u7387, \u4e0d\u4ec5\u652f\u6301\u672c\u5730\u7684\u540c\u6b65\u7ebf\u7a0b\u6a21\u5f0f, \u800c\u4e14\u652f\u6301\u5206\u5e03\u5f0f\u6a21\u5f0f. \n[\u66f4\u591a\u5f00\u53d1\u63cf\u8ff0,\u8bf7\u70b9\u51fb\u94fe\u63a5](http://xiaorui.cc)\n\nControlSpeed(\u672c\u5730\u7248)\u8fd8\u4e0d\u517c\u5bb9\u591a\u8fdb\u7a0b\u591a\u7ebf\u7a0b\u7684\u573a\u666f, \u5f53\u7136\u4f60\u53ef\u4ee5\u7528ControlSpeedNetwork\u5206\u5e03\u5f0f\u7248\u89e3\u51b3. \u7f3a\u70b9\u662f\u6bcf\u6b21\u8bbf\u95ee\u90fd\u4f1a\u6709\u4e00\u6b21\u7f51\u7edcio\u6d88\u8017.\n#Usage:\n\n\u88c5\u9970\u5668\u4f7f\u7528\u65b9\u6cd5\n```\nfrom controlspeed import ControlSpeed\n@ControlSpeed(max_calls=10, period=1.0)\ndef do_something():\n pass\n```\n\nwith\u5173\u952e\u8bcd\u63a7\u5236\u4e0a\u4e0b\u6587\n```\nfrom controlspeed import ControlSpeed\nrate = ControlSpeed(max_calls=10, period=1.0)\nfor i in range(100):\n with rate:\n do_something()\n```\n\n\u652f\u6301\u56de\u8c03\u51fd\u6570\u7684\u63a7\u901f\n```\nfrom controlspeed import ControlSpeed\nimport time\ndef limited(until):\n duration = int(round(until - time.time()))\n print 'Speed limited, sleeping for %d seconds' % duration\n\nrate = ControlSpeed(max_calls=2, period=3, callback=limited)\nfor i in range(3):\n with rate:\n print i\n```\n\n\u57282.1\u52a0\u5165\u4e86\u5206\u5e03\u5f0f\u9650\u9891, \u501f\u52a9\u4e8eredis\u5b9e\u73b0.\n```\nimport redis\nredis_conn = redis.StrictRedis()\nkey = 'xiaorui.cc'\n\n@ControlSpeedNetwork(redis_conn, key, max_calls=10, period=3.0)\ndef do_something(args):\n print args\n time.sleep(0.1)\n\nfor i in xrange(20):\n do_something(i)\n```", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rfyiamcool", "keywords": "controlspeed,fengyun", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "controlspeed", "package_url": "https://pypi.org/project/controlspeed/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/controlspeed/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/rfyiamcool" }, "release_url": "https://pypi.org/project/controlspeed/2.3/", "requires_dist": null, "requires_python": null, "summary": "Control function call speed ,support network mode by redis", "version": "2.3" }, "last_serial": 1818242, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7555f7e73477dd6b0a06070d784a4550", "sha256": "0510740aad89b51706ecfd7ad5e3d0dccb9b0ec102618a38aadbb90be03ba5a8" }, "downloads": -1, "filename": "controlspeed-1.0.tar.gz", "has_sig": false, "md5_digest": "7555f7e73477dd6b0a06070d784a4550", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2030, "upload_time": "2015-11-14T15:26:49", "url": "https://files.pythonhosted.org/packages/ba/c6/94d13e85a2eb212d5980e4d038768a2e7e424242266a46bf36a18f54e685/controlspeed-1.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "3d4a6b98907ba6130642f85c2bbbb010", "sha256": "2816ca7258d038e2608605bbe9e8da3d978329a8fd5a50b0b08f309a03b91e3e" }, "downloads": -1, "filename": "controlspeed-2.1.tar.gz", "has_sig": false, "md5_digest": "3d4a6b98907ba6130642f85c2bbbb010", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2615, "upload_time": "2015-11-14T17:24:34", "url": "https://files.pythonhosted.org/packages/2e/dd/98c3f0191304c56ca8328de4baddb2ee8789da9f2f84c61ffb5989d4c820/controlspeed-2.1.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "ac89573231eeb3f3543039cda20f4a5c", "sha256": "742710f6102c3b6d767e92b6a0eac462d6bfa1fb6aeb79c5eea9c1a3a93f6cff" }, "downloads": -1, "filename": "controlspeed-2.3.tar.gz", "has_sig": false, "md5_digest": "ac89573231eeb3f3543039cda20f4a5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3555, "upload_time": "2015-11-16T06:34:54", "url": "https://files.pythonhosted.org/packages/16/d2/5b74c44b8525c75edeb13ae029aa3fc26ddaad8dc519d7d009e52e81785b/controlspeed-2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ac89573231eeb3f3543039cda20f4a5c", "sha256": "742710f6102c3b6d767e92b6a0eac462d6bfa1fb6aeb79c5eea9c1a3a93f6cff" }, "downloads": -1, "filename": "controlspeed-2.3.tar.gz", "has_sig": false, "md5_digest": "ac89573231eeb3f3543039cda20f4a5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3555, "upload_time": "2015-11-16T06:34:54", "url": "https://files.pythonhosted.org/packages/16/d2/5b74c44b8525c75edeb13ae029aa3fc26ddaad8dc519d7d009e52e81785b/controlspeed-2.3.tar.gz" } ] }