首页 > 解决方案 > 使用 crontab vs daemon 执行 slave.php 文件

问题描述

我们决定使用 redis 作为我们相对较小的项目的消息代理,关于如何在生产中设置和使用 redis 的信息非常少。我们在 aws 上使用 redis。我已经参考了这个例子:https ://redis4you.com/code.php?id= 012 并在本地使用 redis 服务器进行了测试,一切正常。

然而,我们在使用 crontab 和守护进程服务之间纠结,并不确定哪个是最好的,尽管实现 cron 是最简单的。我研究了普遍接受的做事方式,但什么也没看到。

使用 crontab 意味着我将不得不在某些时候退出 Slave.php 文件,并使用下面的代码片段,我对此并不完全满意

public function processMessageInQueue(){
        while(!is_null($message_id = $this->predis->lpop("queue:message"))){

        $message = $this->predis->hgetall("message:$message_id");

        // Delete the key
        $this->predis->del("message:$message_id");

        // Process the message...
        $message = json_decode($message['message_data'], 1);
        $this->processMessage((array)$message);
    }

    exit(0);
}

有没有更好的方法来做到这一点,还是必须使用 cron 或守护程序服务来完成?

标签: phprediscrondaemonpredis

解决方案


推荐阅读