标签: task-queue

在app-engine任务队列(JAVA)中传递多个参数

有没有办法在google-app-engine的队列中传递多个参数?我使用下面的代码

Queue queue = QueueFactory.getQueue("sms-queue");
queue.add(TaskOptions.Builder.url("/SQ").param("id",pId));
Run Code Online (Sandbox Code Playgroud)

在我的servlet中,这个id是一个查询字符串.

long pID = Long.parseLong(req.getParameter("id"));      
Run Code Online (Sandbox Code Playgroud)

我需要传递6个参数.

java google-app-engine task-queue

6
推荐指数
1
解决办法
1668
查看次数

没有amqp服务器的django-celery(rabbitmq)

我正在使用芹菜进行分布式任务处理.我想在web主机上部署我的工作,只是为了展示我的项目的工作.那么我如何让djcelery使用数据库(sqlalchemy)作为django而不是rabbitmq或其他amqp服务器的后端.

django amqp task-queue celery

6
推荐指数
1
解决办法
2474
查看次数

使用Task.ContinueWith创建执行队列?

我有几个我想在后台执行的操作,但它们必须一个接一个地同步执行.

我想知道使用Task.ContinueWith方法实现这一点是否是个好主意.你预见到这有什么问题吗?

我的代码看起来像这样:

private object syncRoot =new object();
private Task latestTask;

public void EnqueueAction(System.Action action)
{
    lock (syncRoot)
    {
        if (latestTask == null)
            latestTask = Task.Factory.StartNew(action);
        else
            latestTask = latestTask.ContinueWith(tsk => action());
    }
}
Run Code Online (Sandbox Code Playgroud)

c# task task-queue

6
推荐指数
2
解决办法
7854
查看次数

芹菜还是豆腐或两者兼而有之?

我知道(但我不明白)Celery可以使用Beanstalk作为传递机制.

来自Beanstalkd主页

"Beanstalk是一个简单,快速的工作队列."

来自Celery主页

"这是一个任务队列,专注于实时处理,同时也支持任务调度."

这看起来和我很相似.那么,为什么我会选择芹菜而不是简单的豆茎呢?或者为什么我会选择豆茎而不是成熟的芹菜呢?

我想在我的webapp中添加一个任务/工作队列,但我不知道该走哪条路.

python beanstalkd task-queue celery

6
推荐指数
1
解决办法
3025
查看次数

从taskqueue按名称获取任务

我如何通过名字获得任务?

from google.appengine.api import taskqueue
taskqueue.add(name='foobar', url='/some-handler', params={'foo': 'bar'}

task_queue = taskqueue.Queue('default')
task_queue.delete_tasks_by_name('foobar') # would work

# looking for a method like this:
foobar_task = task_queue.get_task_by_name('foobar')
Run Code Online (Sandbox Code Playgroud)

应该可以使用REST API(https://developers.google.com/appengine/docs/python/taskqueue/rest/tasks/get).但我更喜欢类似的东西task_queue.get_task_by_name('foobar').有任何想法吗?我错过了什么?

python google-app-engine task-queue

6
推荐指数
1
解决办法
861
查看次数

管理芹菜任务结果

我对Celery来说还很陌生,我想我已经读到某处内容,说明任务结果只在有限的时间内存在。但是,我的后端(redis)在通过它运行许多任务后变得非常肿。

有没有一种方法可以在任务结果上设置TTL,或者这是我需要手动清除(以及如何清除)的东西?

python task-queue redis celery

6
推荐指数
1
解决办法
2651
查看次数

App Engine 任务队列等待限制

在发生事件之前,任务可以在任务队列中等待处理多长时间?如果不是永远,那么可能会发生什么?

我可以将大量任务添加到处理率非常低的队列中,并在几天/几周/几个月内处理它们吗?

如果任务等待时间过长,是否会从队列中弹出?

任务队列配额和限制

maximum countdown/ETA for a task:30 days from the current date and time
Run Code Online (Sandbox Code Playgroud)

我认为这是在谈论有意/有计划地在未来设置 eta,而不是允许任务等待多长时间。

google-app-engine task-queue

5
推荐指数
1
解决办法
1127
查看次数

SQS /任务队列作业重试计数策略?

我正在使用Amazon SQS实现一个任务队列(但我想这个问题适用于任何任务队列),其中工作人员需要采取不同的操作,具体取决于已经重新尝试作业的次数(将其移至一个不同的队列,增加可见性超时,发送警报..等等)

什么是跟踪失败的工作计数的最佳方法?我想避免为工作保留一个集中式数据库:重试计数记录.我应该在监控过程中查看在队列中花费的时间吗?国际海事组织最好是丑陋或不干净,迭代工作直到找到古老的工作.

谢谢!安德拉斯

distributed amazon-sqs task-queue amazon-web-services

5
推荐指数
3
解决办法
5175
查看次数

Laravel 测试作业已发布

我想测试在某些情况下该作业是否已被释放回队列中。

这是我的工作类别:

class ChargeOrder extends Job
{
    use InteractsWithQueue, SerializesModels;

    /**
     * The order model which is to be charged
     */
    protected $order;

    /**
     * The token or card_id which allows us to take payment
     */
    protected $source;

    /**
     * Create a new job instance.
     *
     * @param   App\Order       $order;
     * @param   string          $source;
     * @return  array
     */
    public function __construct($order, $source)
    {
        $this->order        = $order;
        $this->source       = $source;
    }

    /**
     * Execute the job.
     *
     * @return void
     */ …
Run Code Online (Sandbox Code Playgroud)

testing jobs task-queue laravel

5
推荐指数
1
解决办法
3354
查看次数

如何在不运行异步方法的情况下对它的任务结果进行排队?

如果我有一个类,其中包含稍后要执行的任务队列,并且我有一个async Task<T>方法,那么如何将该异步方法排入队列而不执行它?

我想“延迟”此任务,并确保调用者看到它稍后运行,就像在方法体中等待它一样。--- 调用者不应该知道我已将任务排队以供稍后使用。

现在,如果我的队列已满,我会构造并返回一个Task<T>未运行的新的,它返回.Result我的私有异步方法:

public async Task<T> ExecuteAsync<T>(T transaction) {
    if (mustDelay) {
        Task<T> task = new Task<T>(t => executeAsync((T) t).Result, transaction);
        enqueue(task);
        return await task;
    }
    return await executeAsync(transaction);
}

private async Task<T> executeAsync<T>(T transaction) {
    await someWork();
    return transaction;
}
Run Code Online (Sandbox Code Playgroud)

当其他任务完成时,我使Start()该任务出队:

dequeuedTask.Start();
Run Code Online (Sandbox Code Playgroud)

这是否确保调用者看到与仅从方法返回等待结果相同的同步?

c# asynchronous task task-queue

5
推荐指数
1
解决办法
2962
查看次数