zoukankan      html  css  js  c++  java
  • MQ:Beanstalkd 队列复习(二)

    一、下载第三方扩展pheanstalk

    composer require pda/pheanstalk

    二、公共文件conn.php

    <?php
    /**
     * 公共连接脚本
     */
    
    include_once "vendor/autoload.php";
    //$conn = PheanstalkPheanstalk::create('127.0.0.1',11300,10);
    
    use PheanstalkPheanstalk;
    
    $pheanstalk = Pheanstalk::create('127.0.0.1',11300);

    二、生产端代码producer.php

    <?php
    /**
     * beanstalkd生产者
     */
    
    require "conn.php";
    
    use PheanstalkPheanstalk;
    
    // Queue a Job
    $pheanstalk
        ->useTube('testtube')
        ->put("job payload goes here
    ");
    
    $pheanstalk
        ->useTube('testtube')
        ->put(
            json_encode(['test' => 'data']),  // encode data in payload
            Pheanstalk::DEFAULT_PRIORITY,     // default priority
            30, // delay by 30s
            60  // beanstalk will retry job after 60s
        );

    三、消费者代码consumer.php

    <?php
    /**
     * beanstalkd消费者
     */
    require "conn.php";
    
    // we want jobs from 'testtube' only.
    $pheanstalk->watch('testtube');
    
    // this hangs until a Job is produced.
    $job = $pheanstalk->reserve();
    
    try {
        $jobPayload = $job->getData();
    
        if(!empty($jobPayload)){
            print_r($jobPayload);
            $pheanstalk->delete($job);
        }
        // do work.
    
    //    sleep(2);
    //    // If it's going to take a long time, periodically
    //    // tell beanstalk we're alive to stop it rescheduling the job.
    //    $pheanstalk->touch($job);
    //    sleep(2);
    //
    //    // eventually we're done, delete job.
    //    $pheanstalk->delete($job);
    }
    catch(Exception $e) {
        // handle exception.
        // and let some other worker retry.
        $pheanstalk->release($job);
    }

    四、gitee代码下载地址

    https://gitee.com/eoo-tec/beanstalk-review

    本博客地址: wukong1688

    本文原文地址:https://www.cnblogs.com/wukong1688/p/13347747.html

    转载请著名出处!谢谢~~

  • 相关阅读:
    SpringBoot配置文件数据格式三种写法
    实施工程师
    Linux命令大全
    PDCA原则
    cmd命令下载maven管理需要的依赖jar包
    java集合体系结构总结
    回溯
    红黑树详解
    Java 垃圾回收算法
    MySQL优化:如何避免回表查询?什么是索引覆盖
  • 原文地址:https://www.cnblogs.com/wukong1688/p/13347747.html
Copyright © 2011-2022 走看看