相关疑难解决方法(0)

node.js中的Cronjobs

是否有可能在node.js中的某一特定时间定期调用函数?我的第一次实施是

setInterval(functionName(),(24*60*60*1000));
Run Code Online (Sandbox Code Playgroud)

这不是最理想的,因为每次重新启动节点时它都会重新启动.是否有更好的可能性来实现这一点?

javascript cron node.js

24
推荐指数
1
解决办法
2万
查看次数

使用Laravel在后台执行PHP脚本

我有一个使用Laravel 4编写的Web应用程序,当用户请求某个页面或单击按钮时,它会运行脚本.这应该在后台激活脚本.

目前,我的设置看起来像这样,

控制器部分:

public function getWorkerPage() {           

    Queue::push('UpdateUserVar1', array('id' => $login->id));

    Queue::push('UpdateUserVar2', array('id' => $login->id));

    Queue::push('Worker', array(
        'login_id' => $login->id
    ));

    .... // Some more stuff

    View::make('workerpage');
}
Run Code Online (Sandbox Code Playgroud)

工人:

class Worker {

    public function fire($job, $data) {
        ...
        //Process (Takes around 10 minutes)

        // Release the job which makes the worker work until it deletes itself by a piece of logic in the Process bit above.
        $job->release();
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,当多个用户请求运行此脚本时,需要10分钟才能完成上一个作业.我不希望这样.我希望这些脚本只在后台运行,直到用户停止它为止.当用户请求运行脚本时,它就会立即运行.

我想我需要拿走队列然后我的问题是,是否页面将继续加载加载,这不是我想要的东西,因为在那之后Queue::push,有一个正常的视图.所以我正在寻找一个PHP程序或一个函数,它允许我执行脚本,传入几个变量,而不会阻塞Controller中的其余代码.

我确实找到了像Gearman和Supervisord这样的解决方案,但我无法判断这些是否适合我,因为我没有完全掌握文档.

如果我的问题不完全清楚,请不要犹豫.

Nutshell:我需要一个在后台执行我的脚本的程序,这使我能够继续使用Laravels函数并传入变量,而不会在程序执行后阻塞代码.

php background worker laravel

0
推荐指数
1
解决办法
7407
查看次数

标签 统计

background ×1

cron ×1

javascript ×1

laravel ×1

node.js ×1

php ×1

worker ×1