云迈博客

您现在的位置是:首页 > 后端开发 > PHP > 正文

PHP

基于 swoole 的定时器部署

wsinbol2021-01-31PHP396
项目特性˃基于swoole的定时器程序,支持秒级处理.异步多进程处理。完全兼容crontab语法,且支持秒的配置,可使用数组规定好精确操作时间单中心-多客户端模式,能够横向扩展web界面管理,增删改

项目特性

基于swoole的定时器程序,支持秒级处理.
异步多进程处理。
完全兼容crontab语法,且支持秒的配置,可使用数组规定好精确操作时间
单中心-多客户端模式,能够横向扩展
web界面管理,增删改查任务,完整的权限控制.

预备&须知

该项目对应的swoole版本比较老
安装好swolle

安装核心模块

git clone git@github.com:osgochina/swoole-crontab.git
unzip swoole-crontab-master.zip
cd framework
// https://github.com/matyhtf/framework/tree/2.0
composer create-project matyhtf/skeleton frame

安装拓展组件

tar -xvzf ext-async-4.3.1.tar.gz
cd ext-async-4.3.1
phpize
./configure –with-php-config=/www/server/php/73/bin/php-config
make -j 4
make install

不要忘记修改对应PHP版本的php.ini配置文件,在最后面添加:

extension=swoole.so
extension=swoole_async.so

配置 nginx

server
{
    listen 80;
    server_name crontab.yunmell.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/server/stop/;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END

    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START  PHP引用配置,可以注释或修改
    #include enable-php-73.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    ##include /www/server/panel/vhost/rewrite/crontab.yunmell.com.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    location / {
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php;
        }
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        #include        fastcgi_params;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    access_log  /dev/null;
    error_log  /www/wwwlogs/crontab.yunmell.com.error.log;
}

启动服务端

php src/center/center.php start -d -h 127.0.0.1 -p 8901

启动客户端

php src/agent/agent.php start -h 127.0.0.1 -p 8901

PS:不开启客户端时,是否注册栏对应的为未注册,任务也就无法执行!

相关截图

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~