当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot中随机安排进程

吕承望
2023-03-14

我有一个数据队列,其中有一个字段“创建时间”。我将按创建的时间顺序升序在队列中插入项目。现在,我必须在队列中每个第一个条目的创建时间运行一个进程,它应该只运行一次。

前--

队列中有五个条目的时间
1)1:00
2)1:15
3)1:20
4)1:30
5)2:00

所以我计划的流程应该在下午1:00,然后在下午1:15,然后在下午1:20,然后在1:20,最后在下午2:00运行,并且在特定时间后不会再次出现。

我用的是Spring靴。Spring有没有办法做到这一点。

共有1个答案

应煌
2023-03-14

例如,您可以使用ThreadPoolTaskScheduler作为实现来配置TaskScheduler,ThreadPoolTaskScheduler基本上是SchduledThreadPoolExecator2的包装器:

@Bean
public TaskScheduler taskScheduler ()
{
    ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
    taskScheduler.initialize();
    return taskScheduler;
}

然后,您可以使用调度程序以简单的方式处理队列:

public class MyQueueParser
{
    @Autowired
    private TaskScheduler scheduler;

    public void parseQueue()
    {
        for (Item item: myQueue)
        {
            scheduler.schedule(() -> {
                // do the work
            }, item.getCreationTime());
        }
    }
}

Scheduler需要runnable来执行和运行测试的时间。TaskScheduler还允许您使用触发器。请检查此处的文档

 类似资料:
  • 问题内容: 如何将下面的函数转换为?当前出现错误。 问题答案: 返回,它是描述两个集合索引之间距离的类型。必须为,但不必为,可以与有所不同。因此,不可能创建范围。 一个解决方案是使用和代替and : 另一个优点是,它也可以与数组 切片 正确配合使用 (第一个元素的索引不一定为零)。 请注意,根据新的“ Swift API设计指南”,它 是变异随机播放方法和返回数组的非变异对应方法的“适当”名称:

  • 尽管在阅读了许多关于的文章之后,我遇到了一个关于在Java中使用安全API的疑问。在下面的示例中。 } 谁能让我知道我在这里做的是对的吗?

  • 问题内容: 我一直在谷歌上寻找答案,但似乎找不到一个万无一失的东西,而且真的负担不起将其弄乱(进入生产站点)。 我所拥有的是具有20多个过滤器的高级搜索,它返回一个包含ID和Distance的数组。我需要做的是将这些结果混洗以每次随机显示。目前我得到的数组是: 我需要做的是每次都对它们进行随机化或排序,但要保持id和距离对,即: 谢谢 :) 问题答案: 在第一个用户后下的文件: 在保留键,值对的同

  • 随机排列指定数组的值,返回一个新的数组。 使用 Fisher-Yates 算法 对数组元素进行重新排序。 const shuffle = ([...arr]) => { let m = arr.length; while (m) { const i = Math.floor(Math.random() * m--); [arr[m], arr[i]] = [arr[i],

  • 问题内容: 如何有效地洗净大型(1m至5m记录)表的内容?已知该列具有唯一值,但是您可以假定为此删除了所有约束。我之所以头痛,主要是因为我正在更新选择的同一列。我的目标是使用PL / SQL做到这一点,以便我可以以编程方式采取其他措施,例如记录或更新其他表。 我最近的尝试是创建一个使用的游标,并尝试基于行数进行合并或更新。也许我可以通过创建一个临时表来解决修改自我约束的问题?我相当有信心Oracl

  • 本文向大家介绍C#对list列表进行随机排序的方法,包括了C#对list列表进行随机排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#对list列表进行随机排序的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。