meriksk/message-queue

简单的数据库驱动消息队列库。

dev-main 2023-10-26 19:29 UTC

This package is auto-updated.

Last update: 2024-09-26 21:41:55 UTC


README

一个快速、简单的 PHP/MySQL 数据库驱动消息队列库。

安装

通过 Composer

$ composer require meriksk/message-queue

如何安装

  • Message-queue 依赖于优秀的 Swift Mailer,它通过 composer 包含(https://getcomposer.org/)。所有包都将由 composer 安装。

  • 在您的服务器上创建一个名为您希望的数据库。例如:message_queue。

  • 在该数据库上运行提供的 SQL 代码(位于 install/schema.sql),以创建初始数据库结构。

  • 在您的 Linux 上设置两个 cron 作业,定期执行交付和清除脚本。(Cron-job 设置

用法

示例 1

$queue = new \meriksk\MessageQueue\Queue();
$message = new Message(Queue::EMAIL, 'recipient1@email.com', 'Subject', 'message body');
$queue->add($message);

示例 2

use meriksk\MessageQueue\Queue;
$queue = new Queue();
$message = new Message(Queue::EMAIL, 'recipient1@email.com', 'Subject', 'message body');
$message->save();

示例 3

use meriksk\MessageQueue\Queue;
$message = Queue::message(Queue::EMAIL);
$message->body = 'Message body';
$message->subject = 'Subject';
$message->addDestination('recipient1@email.com');
$message->addDestination('recipient2@email.com');

// attachment
$message->addAttachment($filePath2, 'custom_name', 'application/pdf');

// save
$message->save();

定时任务

交付脚本将队列中的挂起邮件发送出去。建议每分钟运行一次。确保 shell 脚本是可执行的。

$ crontab -e

添加以下行:* * * * * /var/www/htdocs/your_app/scripts/deliver 0 6 * * * /var/www/htdocs/your_app/scripts/purge

Queue::antiflood(1, 3)
Queue::deliver(['max_attemps' => 3]);

测试

$ composer test

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件