hirale/openmage-redis-queue

适用于openmage的简单Redis队列模块

安装: 6

依赖: 2

建议: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:magento-module

v1.0.0 2024-06-09 15:26 UTC

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 设置

System > Configuration > System > Hirale Redis Queue Settings

快速开始示例

  1. 创建一个新模块,命名为Hirale_QueueExampleapp/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>
  2. 创建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>
  3. 创建一个新的任务处理器,该处理器实现了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');
             }
         }
  4. 创建观察者,从事件中获取数据并将其添加到队列中。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()]);
            }
        }
  5. 清理缓存并检查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)。请参阅许可文件以获取更多信息。