标签: queue

如何更改 Laravel 的作业批处理表名称和连接

Laravel 8 引入了Job Batching,它允许批量执行作业并在批量完成时执行操作。但是 Laravel 文档没有有关作业批处理表和数据库连接配置的部分。

如何为job_batching表指定不同的数据库,是否可以重命名job_batching表名?

php queue jobs laravel job-batching

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

Spring中如何实现同步作业队列?

我正在尝试找出如何使用 Spring 实现作业队列。

我已经启动并运行了一台服务器,我计划让用户向其提交 POST 请求。这将接收一些数据,然后将作业排队以处理这些数据。

处理这些数据是一个昂贵的过程,有时可能需要 5 到 20 分钟(取决于需要完成的工作量)。因此,它需要同步运行。即一项工作完成,然后下一项工作可以开始。

例如

  • 用户提交作业A
  • 由于队列为空,作业 A 已启动
  • 另一个用户提交了第二个作业,作业 B
  • 作业 A 仍在运行,因此作业 B 被放入队列中
  • 另一个用户提交了作业 C,作业 A 仍在运行,因此它与作业 B 一起放入队列中。

我最近才开始学习 Spring,所以我正在寻找一些关于如何实现这一目标的想法。

我的想法是建立一个工厂类来接收然后可以安排的工作。

我的终点之一如下所示:

@RequestMapping(value = "/submitjob", method = RequestMethod.POST)
    public void queueJob(
            @RequestPart("file") MultipartFile file
    ) {

        if (file != null) {
           // queue job
        }
        // else return bad response.
    }
Run Code Online (Sandbox Code Playgroud)

任何意见是极大的赞赏。

java queue spring spring-boot

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

如何解决读取ECONNRESET公牛库错误

当我在 Node js 中使用bull库排队时出现错误,错误如下:

     Error: read ECONNRESET at TCP.onStreamRead 
    - - errno: -104,
   - - code: 'ECONNRESET',
   - - syscall: 'read'
   - - }
Run Code Online (Sandbox Code Playgroud)

 MaxRetriesPerRequestError: Reached the max retries per request limit (which is 20). Refer to "maxRetriesPerRequest" option for details.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

const imageQueue = new Bull("imageQueue", process.env.REDIS_URL);
Run Code Online (Sandbox Code Playgroud)

queue heroku redis node.js bull

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

DispatchQueue.global()默认qos是userInitiated?

我写一个演示

let queue = DispatchQueue.global()
queue.async {
    let group = DispatchGroup()
    group.enter()
    DispatchQueue.global().asyncAfter(deadline: DispatchTime.now(), qos: .default) {
        //do sth in default queue
        group.leave()
    }
    group.wait()
    DispatchQueue.main.async { [weak self] in
        //do sth in main queue
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我收到线程性能检查警告

以 QOS_CLASS_USER_INITIATED 运行的线程正在等待以 QOS_CLASS_DEFAULT 运行的较低 QoS 线程。研究避免优先级倒置的方法

我尝试打印它显示的外部队列的 qos

(lldb) print queue.qos
(Dispatch.DispatchQoS) $R0 = {
  qosClass = unspecified   //I think this should be default.
  relativePriority = 0
}
Run Code Online (Sandbox Code Playgroud)

苹果文档错了?

class func global(qos: DispatchQoS.QoSClass = .default) -> DispatchQueue
Run Code Online (Sandbox Code Playgroud)

queue grand-central-dispatch ios swift

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

在枚举时插入队列

我想使用Queue对树进行广度优先搜索

var q = new Queue<T>();

q.Enqueue(Root);

foreach(T root in q)
{
  foreach(T t in root.Children)
    q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了"在实例化枚举器之后修改了集合".例外.

我可以用C#类型吗?


编辑:一点点阅读让我觉得我可能做错了.

有没有办法使用foreach从队列中出队?


这工作但很难看(OMHO)

var q = new Queue<T>();

q.Enqueue(Root);

while(q.Count > 0)
{
  T root = q.Dequeue();
  foreach(T t in root.Children)
    q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)

c# queue breadth-first-search data-structures

0
推荐指数
1
解决办法
1463
查看次数

如何将"Pair"或n-size插入列表集合而不是编写HashMaps?

所以,我有一种情况需要将三个值传递给一个串行的BlockingQueue队列:

(SelectableChannel, ComponentSocketBasis, Integer).
Run Code Online (Sandbox Code Playgroud)

它们实际上根本不需要进行哈希映射,并且使用HashMap是荒谬的,因为每个条目总是只有一个键; 如果他们只是在某种有序的集合中,那就好了.但是,由于缺少已知的替代方法,我在我的实现中使用了HashMap并生成了这个混淆的泛型组合:

private LinkedBlockingQueue<HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer>> deferredPollQueue = new LinkedBlockingQueue<HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer>>();
Run Code Online (Sandbox Code Playgroud)

这看起来真的很荒谬.我必须是一个可怕的n00b.当然有一种更好的方法可以做到这一点,不需要我在检索值时分解密钥或浪费(理论上 - 实际上,Java总是臃肿:)算法复杂性对无用的哈希计算我不需要因为我的密钥空间为1,甚至不想关联映射三个引用,而只是将它们分组?有了这个实现,我必须这样取出值:

while(deferredPollQueue.size() > 0) {
    System.out.println("*** Draining new socket channel from queue");
    HashMap<HashMap<SelectableChannel, ComponentSocketBasis>, Integer> p = deferredPollQueue.take();

    SelectableChannel chan = null;
    ComponentSocketBasis sock = null;
    int ops = 0;

    HashMap<SelectableChannel, ComponentSocketBasis> q = p.keySet().iterator().next();

    chan = q.keySet().iterator().next();
    sock = q.get(chan);

    ops = p.get(q).intValue();

    SelectionKey k = chan.register(selector, ops);  

    if(!channelSupervisorMap.containsKey(k))
        channelSupervisorMap.put(k, sock);
}
Run Code Online (Sandbox Code Playgroud)

我很确定每一个有能力的人都认为这是一种荒谬的方式,所以问题是 - 什么是正确的方法?:)我无法在任何地方找到java.util.Pair或java.util.Triplet的证据.

我认为Orthodox Way(TM)只是为了容纳这个三元组而做一个自定义类或接口,但是对于这么大的系统中的这么小的任务来说,这似乎是荒谬的冗长和不必要的 - 尽管如此,那是Java本身.

出于同样的原因,也许这些值可以放在ArrayList或Vector或它们的衍生物上,但是在Java中,这并没有比我从这个HashMap中获得更简洁的解决方法,尽管它确实解决了也许是算法复杂性问题.

回到Perl …

java queue collections map dataset

0
推荐指数
1
解决办法
1062
查看次数

jquery每个函数和队列

我有一个数组:

arr = ['a', 'b', 'c', ... ]
Run Code Online (Sandbox Code Playgroud)

我希望它是:

 <div>
  <ul>
    <li>a
    <li>b
    <li>c
    ...
  </ul>
 </div>
Run Code Online (Sandbox Code Playgroud)

所以我正在尝试:

$('div').append('<ul>');
$.each(arr, function () {
    $('div').append('<li>' + this);
});
$('div').append('</ul>');
Run Code Online (Sandbox Code Playgroud)

但似乎没有工作......我怎么排队这个?

queue each jquery

0
推荐指数
1
解决办法
722
查看次数

Java后缀计算器中的StackOverFlowError

以下类由另一个程序使用.访问它时,它会抛出StackOverFlowError.这是我在大学时必须做的一个后缀计算器的一部分.

非常感谢任何帮助,谢谢你提前.我是Java的新手,我不知道该怎么做.

码:

import java.util.Queue;
import java.util.Stack;

public class MyPostfixMachine implements PostfixMachineInterface {

    MyMathOperations mmo = new MyMathOperations();
    MyPostfixMachine mpm = new MyPostfixMachine();

    public String evaluate(Queue q) {
        if (q.isEmpty()) {//if the input is empty, terminate the program
            System.exit(0);
        }
        if (q.size() == 1) {//if there is only one number in the queue, return it as the solution
            if (mpm.isParsableToDouble(String.valueOf(q.remove()))) {
                return String.valueOf(q.remove());
            }
        }
        Stack<String> finalxp = new Stack<String>();//create an empty stack
        if (mpm.isParsableToDouble(String.valueOf(q.remove()))) {//if first element of queue …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow queue calculator postfix-notation

0
推荐指数
1
解决办法
2071
查看次数

查找包含给定值的包含对象成员的队列的索引

我有一个包含对象集合的Queue,其中一个对象是一个名为GlobalMarker的类,它有一个名为GlobalIndex的成员.

我想要做的是找到GlobalIndex包含给定值的队列的索引(这将始终是唯一的).

只需使用Contains下面显示的方法返回一个bool.如何获取此匹配的队列索引?

RealTimeBuffer
  .OfType<GlobalMarker>()
  .Select(o => o.GlobalIndex)
  .Contains(INT_VALUE);
Run Code Online (Sandbox Code Playgroud)

c# queue

0
推荐指数
1
解决办法
1897
查看次数

jQuery动画队列

我处于死胡同,所以希望jQuery大师可以提供帮助.

我在页面上总共有10个元素(实际上是小图像).我需要像这样动画它们:

  1. 前2出现
  2. 然后接下来的2出现
  3. 然后接下来的3个出现
  4. 然后下一个出现
  5. 然后最后2出现了

所以,我已经为每一个添加了属性(sequence_num ="1"(或2或3等),因此我可以通过$()使用animate()函数轻松选择哪些动画.)

我的目标是编写一个执行动画的函数(我可以这样做 - 我想我已经掌握了animate()函数).

我所坚持的是如何延迟动画,以便在下一组开始之前对适当的对象组进行动画处理.我已经尝试了animate()函数的queue参数,但这似乎不适用于我想要做的事情.

有人对这个有经验么?

queue jquery animation effects

0
推荐指数
1
解决办法
1639
查看次数