生产者,produce.php
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$taskData = json_encode([
'task_id' => uniqid(),
'task_type' => 'email',
'payload' => [
'to' => 'user@qq.com',
'subject' => 'Hello World!',
'body' => '邮件发送.'
]
]);
$redis->lPush('task_queue', $taskData);
?>
消费者,consumer.php
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
while (true) {
$item = $redis->brPop(['task_queue'], 0);
if ($item) {
$taskData = $item[1];
$task = json_decode($taskData, true);
// 进行任务处理...
echo "Processing task: " . $task['task_type'] . "\n";
// 基于任务结果更新状态或者进行其他操作
}
}
?>