我们正在为员工排班系统进行一些研发,我知道有一些建议的算法,如模因算法等,但我在网上找不到任何其他信息.
有没有人知道任何研究期刊,或伪代码那些更好地解释这些算法?
谢谢,德万
我正在编写一个优化算法,它创建了大约100个线程.目前,我一次启动它们(for循环),之后我告诉每个线程它应该加入().
我的问题是现在每个线程使用大量内存,因此堆空间异常不会花费很长时间.我想要某种调度,但不知道如何实现它.
我有类似这样的事情:开始10个线程,每次完成其中一个完成新线程.因此,总是一直运行10个线程,直到没有线程被留下.
有人有想法或知道如何实现这样的事情吗?
非常感谢您和科隆的问候
马尔科
我正在寻找一种计划任务的方法,其中任务在几个先前的任务完成后开始.
我有几百个"收集器"进程,它从各种源收集数据并将其转储到数据库.一旦这些已经完成收集(从1秒到任何地方几分钟)我要立即揭开序幕一堆"数据处理"过程的分析,并在数据库中的数据的意义.当所有这些都完成后,我想要开始最终任务并向我发送摘要数据的电子邮件.
我目前正在使用Gearman队列并在我希望"收集器"进程完成后在计时器上启动数据处理任务,但这意味着处理步骤在10分钟后开始,即使收集器进程在3之后完成(或者更糟糕的是,还没有完成).
理想情况下,我可以指定特定的规则,例如"当进程A和(B或C)完成时启动进程X",或"当95%的指定进程已完成或已经过去10分钟时启动进程Y".
需要自动创建进程和依赖项,因为每次都会使用不同的参数运行(即,我每次都没有进行相同的计算).
我可以写某种使用队列和监控自己的图形依赖性框架,但它似乎像这种东西必须已经解决了,我找人谁使用像我描述.
我需要取消Spring定时器执行或至少根据某些条件更改执行频率.正在使用org.springframework.scheduling.quartz.SimpleTriggerBean和org.springframework.scheduling.timer.ScheduledTimerTask.找不到怎么做的方法.
如何描述在应用程序启动后和00:00之后运行的Spring调度程序?
问题:System.Threading.Timer尽管OS时钟分辨率更精确,
为什么保持15ms的分辨率?在没有繁忙的CPU等待的情况下,实现1ms定时事件分辨率的可行方法是什么?
再次强调:在我的情况下,系统计时器的分辨率为1ms(而不是建议重复的问题).所以这不是系统计时器分辨率的问题.因此,在所谓的重复问题中没有有用的信息.
背景:
.NET似乎System.Threading.Timer 没有使用系统时钟分辨率 - 它保持了~15ms的分辨率.尽管OS时钟(例如Sleep分辨率)更加精确.
在我的盒子上(当几乎空闲且4个核心可用时):
>Clockres.exe
ClockRes v2.0 - View the system clock resolution
Copyright (C) 2009 Mark Russinovich
SysInternals - www.sysinternals.com
Maximum timer interval: 15.625 ms
Minimum timer interval: 0.500 ms
Current timer interval: 1.001 ms
Run Code Online (Sandbox Code Playgroud)
输出我的快速测试:
Sleep test:
Average time delta: 2[ms] (from 993 cases)
System.Threading.Timer test:
Average time delta: 15[ms] (from 985 cases)
Run Code Online (Sandbox Code Playgroud)
测试代码是:
private static void TestSleepVsTimer(long millisecondsDifference, int repetions)
{
TimingEventsKeeper timingEventsKeeper …Run Code Online (Sandbox Code Playgroud) 有谁知道如何在Linux内核调度程序中实现异构多处理(HMP)调度?
这已在ODROID-XU3板提供的内核中实现.(https://github.com/hardkernel/linux.git -b odroidxu3-3.10.y-android)
我粗略地知道它计算某个进程的负载,并根据该负载重新调度到更快或更慢的CPU.我正在寻找更详细的解释,如果可能的话,还有实现此功能的函数的代码位置.
我需要在我们的网站上提供行动/活动的安排.垃圾比喻可以是日历系统,其中一个人添加日历项目,并且当日期/时间被"命中"时,则触发一些逻辑(例如,计算报告).
我可能会有数百甚至数千个由我的客户输入的预定活动.当客户输入要安排的内容时,我会将该信息保存到数据库中.然后我猜我会在某处添加一个事件/作业,它将包含数据库表主键.当事件被触发时,我将从数据库中获取该信息,然后执行逻辑.完成.
有哪些常见解决方案可以解决这个问题?
我正在使用.NET 3.5 SP1.DB是Sql Server 2008.但UI将基于Web.
我不确定人们是否使用MSMQ?或者内置在Sql Server中的东西?或者一些带有NT服务的开源库(例如Quartz.NET).服务器将是windows 2008标准版.
另外 - 请不要使用等效的cron作业或任何命令行脚本等建议.
最后,这是次要的目标..我喜欢把它扔到天蓝色的地方为shiz和giggles ......所以也可能吗?这只是一个愿望清单的想法.如果解决方案比使用Azure更容易,我宁愿在专用盒子上进行.
欢呼:)
编辑:需要触发事件时要处理的逻辑,是后台作业.无需UI.
我在新的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中运行)