hirale / openmage-redis-queue
适用于openmage的简单Redis队列模块
v1.0.0
2024-06-09 15:26 UTC
Requires
- php: ^8.0
- magento-hackathon/magento-composer-installer: *
- predis/predis: *
This package is auto-updated.
Last update: 2024-09-10 19:27:51 UTC
README
使用Redis Stream处理异步任务的模块。
依赖此模块的模块
安装
使用Magento Composer Installer安装
composer require hirale/openmage-redis-queue
使用方法
设置
转到openmage系统配置 系统 > 配置 > 系统 > Hirale Redis Queue 设置
。
快速开始示例
-
创建一个新模块,命名为
Hirale_QueueExample
。app/etc/modules/Hirale_QueueExample.xml
<?xml version="1.0"?> <config> <modules> <Hirale_QueueExample> <active>true</active> <codePool>local</codePool> <depends> <Hirale_Queue /> </depends> </Hirale_QueueExample> </modules> </config>
-
创建
app/code/local/Hirale/QueueExample/etc/config.xml
。<?xml version="1.0"?> <config> <modules> <Hirale_QueueExample> <version>1.0.0</version> </Hirale_QueueExample> </modules> <global> <models> <hirale_queue_example> <class>Hirale_QueueExample_Model</class> </hirale_queue_example> </models> <events> <controller_front_send_response_before> <observers> <hirale_queue_example_send_response_after> <type>singleton</type> <class>hirale_queue_example/observer</class> <method>testExample</method> </hirale_queue_example_send_response_after> </observers> </controller_front_send_response_before> </events> </global> </config>
-
创建一个新的任务处理器,该处理器实现了
Hirale_Queue_Model_TaskHandlerInterface
类。app/code/local/Hirale/QueueExample/Model/TestHandler.php
<?php class Hirale_QueueExample_Model_TestHandler implements Hirale_Queue_Model_TaskHandlerInterface { public function handle($data) { Mage::log($data['id'] . ': ' . print_r($data, true), Zend_Log::INFO, 'example.log'); } }
-
创建观察者,从事件中获取数据并将其添加到队列中。
app/code/local/Hirale/QueueExample/Model/Observer.php
<?php class Hirale_QueueExample_Model_Observer { public function testExample(Varien_Event_Observer $observer) { $currentRoute = $observer->getEvent()->getFront(); Mage::getModel('hirale_queue/task')->addTask('Hirale_QueueExample_Model_TestHandler', ['route' => $currentRoute->getRequest()->getRequestString()]); } }
-
清理缓存并检查examle.log,确保您的cron正在运行。
2024-06-09T14:39:01+00:00 INFO (6): 1717943907550-0: Array ( [id] => 1717943907550-0 [handler] => Hirale_QueueExample_Model_TestHandler [data] => Array ( [route] => /admin/customer/index/key/5232c0583f633e8d8d8c349ebb4639db/ ) [retry_count] => 3 [retry_delay] => 60 [timeout] => 60 ) 2024-06-09T15:04:02+00:00 INFO (6): 1717945421857-0: Array ( [id] => 1717945421857-0 [handler] => Hirale_QueueExample_Model_TestHandler [data] => Array ( [route] => /admin/customer/index/key/5232c0583f633e8d8d8c349ebb4639db/ ) [retry_count] => 3 [retry_delay] => 60 [timeout] => 60 )
许可
开放软件许可v. 3.0 (OSL-3.0)。请参阅许可文件以获取更多信息。