{"id":37014423,"url":"https://github.com/spetacular/asyntask","last_synced_at":"2026-01-14T01:25:40.472Z","repository":{"id":56963617,"uuid":"83768953","full_name":"spetacular/asyntask","owner":"spetacular","description":"asyntask是一个轻量级异步任务队列管理器，支持实时，定时，长时和周期任务。A lightweight asynchronous queue manager, supporting real-time, timing, long-term, periodic tasks.","archived":false,"fork":false,"pushed_at":"2017-08-21T09:04:07.000Z","size":529,"stargazers_count":14,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-30T17:05:16.884Z","etag":null,"topics":["php","queue"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spetacular.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-03T07:10:23.000Z","updated_at":"2021-03-29T07:29:09.000Z","dependencies_parsed_at":"2022-08-21T05:40:27.740Z","dependency_job_id":null,"html_url":"https://github.com/spetacular/asyntask","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/spetacular/asyntask","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spetacular%2Fasyntask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spetacular%2Fasyntask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spetacular%2Fasyntask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spetacular%2Fasyntask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spetacular","download_url":"https://codeload.github.com/spetacular/asyntask/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spetacular%2Fasyntask/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28407696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","queue"],"created_at":"2026-01-14T01:25:39.691Z","updated_at":"2026-01-14T01:25:40.462Z","avatar_url":"https://github.com/spetacular.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHP异步任务队列管理器asyntask\nasyntask是一个轻量级异步任务队列管理器，支持实时，定时，长时和周期任务。\n\n## 项目由来\n\n本项目最初用于通知推送。例如用户发布评论，需要推送一条push给原作者。而到苹果的服务器的请求时间较长，如果等待苹果服务器的返回结果，则整个发布评论的接口的响应时间就太长了。因为推送push早1秒晚1秒对用户基本没影响，所以当用户发布评论时，只要数据到数据库，即可返回。与此同时创建一条异步任务，在1秒内给用户推送push。这样既保证了接口的响应速度，又不影响用户体验。该项目已经在线上环境运行1年多，执行了累计8千万条命令，运行稳定。\n\n## 优点\n\n* 异步执行\n* 集成管理后台，可视化操作\n* 代码集成，可编程\n\n## 缺点\n\n并非真正实时，秒级误差。\n\n# 安装\n## 下载源码\n\n直接使用：\n```\ngit clone https://github.com/spetacular/asyntask.git\n```\n命令下载到本地。\n\n也可以点击 [https://github.com/spetacular/asyntask/archive/master.zip](https://github.com/spetacular/asyntask/archive/master.zip) 下载最新内容的压缩包，然后解压。\n## 通过 composer 来安装\n\n   在你的 composer 项目中的 composer.json 文件中，添加这部分：\n```\n   {\n       \"require\": {\n           \"davidyan/asyntask\": \"\u003e=1.0\"\n       }\n   }\n```\n\n然后执行`composer install`。调用示例如下：\n```\ninclude './vendor/autoload.php';\n$task = new AsynTask\\Task();\n\n//添加单次任务\n$name = '单次任务';\n$cmd = 'php abcd.php';\n$params = array(\n\t'params'=\u003e1\n);\n$task-\u003eadd_once_task($name,$cmd,$params);\n```\n\n# 配置\n1.asyntask的数据默认存储在Mysql数据库里，因此需要更改config.php里的配置：\n\n```\n\t'DB_HOST'=\u003e'127.0.0.1',\n\t'DB_NAME' =\u003e 'asyntask',\n\t'DB_USER' =\u003e 'root',\n\t'DB_PWD' =\u003e '',\n\t'DB_PORT' =\u003e '3306',\n\t'DB_CHARSET' =\u003e 'utf8mb4',\n```\n\n2.导入数据表\n将resource文件夹里的db.sql导入数据库中。\n\n3.配置健康检查脚本\nrun.sh定期检查异步任务的运行状况，如果挂了，cron_asyn_task.php脚本。\n```\nchmod +x run.sh\n```\n然后配置CronTab。运行`crontab -e`，然后添加一行：\n```\n* * * * *  path-to/run.sh  \u003e /dev/null 2\u003e\u00261\n```\n# 使用方式\n\n## 管理后台\n\n自带管理后台，可以轻松添加、编辑、删除、搜索任务。代码在[https://github.com/spetacular/asynadmin](https://github.com/spetacular/asynadmin)，请自行部署。\n[![管理后台截图](https://github.com/spetacular/asynadmin/raw/master/asynadmin.jpeg)](https://github.com/spetacular/asynadmin/raw/master/asynadmin.jpeg)\n\n## 编程方式\n\n可以集成到项目中，完整使用示例见`test.php`。\n例如添加周期任务：\n```\n$name = '周期任务';\n$cmd = 'php abc.php';\n$params = array(\n\t'params'=\u003e1\n);\n$timeOptions = array(\n\t'day'=\u003e1,\n\t'hour'=\u003e2,\n\t'minute'=\u003e3\n);\n$task-\u003eadd_loop_task($name,$cmd,$params,$timeOptions);\n```\n## 周期任务示例\n\n每天执行：day 1 hour 0 minute 0 每天零点执行\n\n每小时执行：day 0 hour 1 minute 5 每小时的5分执行\n\n每隔若干分钟执行：day 0 hour 0 minute 5 每隔5分钟执行\n\n# asyntask\nA lightweight asynchronous queue manager, supporting real-time, timing, long-term, periodic tasks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspetacular%2Fasyntask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspetacular%2Fasyntask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspetacular%2Fasyntask/lists"}