Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T think-queue
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 22
    • Issues 22
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • 刘晨
  • think-queue
  • Merge requests
  • !59

Add a function remove() for users can actively delete a job

  • Review changes

  • Download
  • Patches
  • Plain diff
Closed 刘晨 requested to merge maxsky:master into master Jun 02, 2018
  • Overview 0
  • Commits 8
  • Pipelines 0
  • Changes 23

Created by: maxsky

Add some Redis driver function return value, fixed a problem with later() always return null. Change push/later return value. Add a remove() method (Only Redis), users can actively delete a job.


添加了 Redis 驱动下一些方法的返回值,修复了 later() 方法一直返回 null 的问题。修改了 push/later 的返回值为如下:(push 返回 Json 字符串,later 返回 score 值)

// push
$ret = Queue::push('Test', ['order_id' => 123, 'add_time' => 0]);
echo("创建 push 任务返回值:$ret<br>");

// return
创建 push 任务返回值:{"job":"Test","data":{"order_id":123,"add_time":0},"id":"F2KStxUdH7J0Z44h4aY3rjYp2rkiwmEc","attempts":1}
// later
$ret = Queue::later(30, 'Test', ['order_id' => 123, 'add_time' => 0]);
echo("创建 later 任务返回值:$ret<br>");

// return
创建 later 任务返回值:1527937178

另添加了 remove() 方法(仅用于 Redis),用于可以主动删除一个任务

// remove push
$ret = Queue::remove('{"job":"Test","data":{"order_id":123,"add_time":0},"id":"F2KStxUdH7J0Z44h4aY3rjYp2rkiwmEc","attempts":1}');
echo("删除 push 任务返回值:$ret<br>");

// return,返回成功操作行数
删除 push 任务返回值:1
// remove later
$ret = Queue::remove('1527937178', 'later');
echo("删除 later 任务返回值:$ret<br>");

// return,返回成功操作行数
删除 later 任务返回值:1

生产者控制器中示例代码如下:

public function create() {
    $ret = Queue::push('Test', ['order_id' => 123, 'add_time' => 0]);
    echo("创建 push 任务返回值:$ret<br>");
    if ($ret !== false) {
        echo 'push 任务创建成功!<br>';
    } else {
        echo 'push 任务创建失败!<br>';
    }
    $ret = Queue::later(30, 'Test', ['order_id' => 123, 'add_time' => 0]);
    echo("创建 later 任务返回值:$ret<br>");
    if ($ret !== false) {
        echo 'later 任务创建成功!<br>';
    } else {
        echo 'later 任务创建失败!<br>';
    }
}

public function delete() {
    $ret = Queue::remove('{"job":"Test","data":{"order_id":123,"add_time":0},"id":"F2KStxUdH7J0Z44h4aY3rjYp2rkiwmEc","attempts":1}');
    echo("删除 push 任务返回值:$ret<br>");
    if ($ret) {
        echo 'push 任务删除成功<br>';
    } else {
        echo 'push 任务删除失败<br>';
    }
    $ret = Queue::remove('1527937178', 'later');
    echo("删除 later 任务返回值:$ret<br>");
    if ($ret) {
        echo 'later 任务删除成功<br>';
    } else {
        echo 'later 任务删除失败<br>';
    }
}

结果截图:

创建任务成功

删除成功

删除返回 0

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: maxsky:master