标签: scheduling

如何在.NET中执行基于时间/预定的事件?

我需要在我们的网站上提供行动/活动的安排.垃圾比喻可以是日历系统,其中一个人添加日历项目,并且当日期/时间被"命中"时,则触发一些逻辑(例如,计算报告).

我可能会有数百甚至数千个由我的客户输入的预定活动.当客户输入要安排的内容时,我会将该信息保存到数据库中.然后我猜我会在某处添加一个事件/作业,它将包含数据库表主键.当事件被触发时,我将从数据库中获取该信息,然后执行逻辑.完成.

有哪些常见解决方案可以解决这个问题?

我正在使用.NET 3.5 SP1.DB是Sql Server 2008.但UI将基于Web.

我不确定人们是否使用MSMQ?或者内置在Sql Server中的东西?或者一些带有NT服务的开源库(例如Quartz.NET).服务器将是windows 2008标准版.

另外 - 请不要使用等效的cron作业或任何命令行脚本等建议.

最后,这是次要的目标..我喜欢把它扔到天蓝色的地方为shiz和giggles ......所以也可能吗?这只是一个愿望清单的想法.如果解决方案比使用Azure更容易,我宁愿在专用盒子上进行.

欢呼:)

编辑:需要触发事件时要处理的逻辑,是后台作业.无需UI.

.net scheduling scheduled-tasks quartz-scheduler

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

在java中调度可运行的任务

关于使用ScheduledThreadPoolExecutor执行某些重复任务,我正在跟进一个有趣的问题.

调度此对象将返回ScheduledFuture对象,可以使用该对象取消下一次任务运行.

这里要注意的一件事是任务本身与时间表完全脱钩 -

ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1);
ScheduledFuture nextSchedule = 
    executor.schedule(task, 60000, TimeUnit.MILLISECONDS);
Run Code Online (Sandbox Code Playgroud)

哪里-

SomeTask task = new SomeTask();
Run Code Online (Sandbox Code Playgroud)

所以任务本身并不了解时间表.如果有办法让任务取消并为自己创建一个新的时间表,请启发.

谢谢

java scheduling timer timer-jobs

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

Linux内核调度

我想知道老Linux调度算法SJF(最短作业优先)如何计算进程运行时?

linux kernel scheduling linux-kernel

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

经典的任务调度任务

我正在开发一个航班调度应用程序(免责声明:这是一个大学项目,所以没有代码答案,请).请在回答之前阅读这个问题,因为它有很多特点:(

首先,一些术语问题:
你有飞机和飞机,你必须配对它们.为简单起见,我们假设一旦飞机使用它之前飞机就会自由飞行.

航班被视为任务:

  • 他们有一个持续时间
  • 他们有依赖
  • 他们有一个预期的开始日期/时间

飞机可被视为任务(或航班,在我们的术语中)使用的资源.

航班需要特定类型的飞机.例如,飞行200需要B型飞机.飞机显然是一种且只有一种特定类型,例如,Plane Airforce One属于C型.

"项目"是航空公司在给定时间段内的所有航班的集合.

所需的功能是:

  • 找到所述项目的最短持续时间

  • 任务的最早和最新可能开始(飞行)

  • 基于提供的数据的关键任务包括先前任务的标识符.

  • 自动配对航班和飞机,以便让所有航班与飞机配对.(注意:航班的持续时间是固定的)

  • 获取项目计划的甘特图,其中所有航班尽早开始,以图形方式显示所有先前引用的数据(依赖关系,时间信息等)

所以问题是:我如何在世界上实现这一目标?尤其:

  • 我们需要使用图表.
    • 图的边和节点分别表示什么?
  • 我们是否需要丢弃任务来完成关键任务集?

如果您还可以推荐一些算法供我们查找,那就太好了.

algorithm scheduling graph gantt-chart

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

在bottle.py启动时运行一次函数

我有一个瓶子应用程序,我最终不会在apache上部署(只有fyi,如果这很重要).现在我需要在启动瓶子应用程序后运行一次函数.我不能把它放到路由功能中,因为即使没有用户访问过网站也必须运行它.

这样做有什么好的实践吗?

该函数启动APScheduler实例并向其添加一个jobstore.

python scheduling bottle

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

使用Akka中的默认调度程序,我是否需要在目标actor停止时手动取消事件?

当在默认的Akka系统调度程序(context().system().scheduler().schedule()来自actor内部)上使用方法,以及接受目标actor的重载之一时,我是否需要使用返回的Cancellable显式取消以在目标actor停止时释放资源?

我想调度程序可能是watch()目标actor并自动执行清理但无法在文档中的任何位置找到它.

scheduling akka cancellation

8
推荐指数
2
解决办法
4316
查看次数

N个重叠会议日程表的最佳房间数和大小

我碰到了这个问题,我不确定我的解决方案是否是最佳的.

问题

给定N加权(Wi)和可能重叠的间隔(表示会议时间表),找到进行所有会议所需的会议室的最小数量"&".

|---10------|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .|---------8---------|

        |------8-----|          |----------10-----------|

                  |--------6-------|
Run Code Online (Sandbox Code Playgroud)

对于上述时间表,我们需要两个10和10个容量的会议室.( 我对么 ? )

我的解决方案

如果我们有一个容量大于需要的会议室使用它,如果没有符合标准的会议室,建立新房间或增加现有房间,请从一个房间,并从左侧穿过间隔.新的能力.

例:

10点开始 - {10}

8点开始 - {10,8}

10月底结束 - {10-free,8}

6点开始 - {10,8}

结束8 - {10,8-free}

10的开头= {10,8 + = 2}或{10,10}

等等.....

这基本上是贪心的..

  • 有人可以证明这不是最优的吗?
  • 如果这是非最佳的解决方案是什么?DP?

algorithm scheduling dynamic-programming greedy intervals

8
推荐指数
2
解决办法
1万
查看次数

在Android中使用JobScheduler安排作业

我在新的Android API 21中使用JobScheduler的作业计划有问题.这是我用60秒间隔调度作业的代码,如下所示:

ComponentName serviceName = new ComponentName(this, MyJobService.class);
JobInfo jobInfo = new JobInfo.Builder(0, serviceName)
        .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
        .setPeriodic(60000)
        .build();
Run Code Online (Sandbox Code Playgroud)

我的JobService只在Logcat中打印运行时,但是日志显示服务在这个时刻运行:

03-18 08:37:26.334: I/JOB(32662): Wed Mar 18 08:37:26 BRT 2015
03-18 08:37:56.364: I/JOB(32662): Wed Mar 18 08:37:56 BRT 2015
03-18 08:39:21.418: I/JOB(32662): Wed Mar 18 08:39:21 BRT 2015
03-18 08:41:51.670: I/JOB(32662): Wed Mar 18 08:41:51 BRT 2015
03-18 08:45:52.192: I/JOB(32662): Wed Mar 18 08:45:52 BRT 2015
03-18 08:54:20.678: I/JOB(32662): Wed Mar 18 08:54:20 BRT 2015
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我用setPeriodic(60000)方法设置它应该在1分钟内执行至少1次.同样好奇的是如何在运行之间增加间隔.此时的时间是2015年3月18日星期三09:09:00 BRT 2015并且工作不会被执行更多.

这是JobScheduler API的问题吗?(我在Android 5.0.1的Nexus 5中运行)

jobs android scheduling task android-jobscheduler

8
推荐指数
2
解决办法
6403
查看次数

golang:当涉及多个频道时,选择如何工作?

我在多个非缓冲通道上使用select时发现了

select {
case <- chana:
case <- chanb:
}
Run Code Online (Sandbox Code Playgroud)

即使两个通道都有数据,但在处理此选择时,如果chana和case chanb处于不平衡的调用.

package main

import (
    "fmt"
    _ "net/http/pprof"
    "sync"
    "time"
)

func main() {
    chana := make(chan int)
    chanb := make(chan int)

    go func() {
        for i := 0; i < 1000; i++ {
            chana <- 100 * i
        }
    }()

    go func() {
        for i := 0; i < 1000; i++ {
            chanb <- i
        }
    }()

    time.Sleep(time.Microsecond * 300)

    acount := 0
    bcount := 0
    wg := …
Run Code Online (Sandbox Code Playgroud)

select scheduling channel go goroutine

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

如何在 Ktor 微服务应用中安排任务

我正在尝试在我的 Ktor 应用程序中安排一项任务,但是我无法在网上找到有关如何执行此操作的任何信息。有没有人有任何建议或以前能够做到这一点?

scheduling kotlin ktor

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