用于R中的Simmer模拟的自制队列优先级策略

问题描述 投票:1回答:1

我想在R中模拟计划过程。我发现必须使用Simmer软件包在R中进行模拟。

[当任务到达我的模拟中时,它们都到达了“等待列表”中。必须安排的任务具有不同的优先级和特征。确定要安排哪个任务,应取决于“权重”。该权重取决于它在等待列表中等待的天数和优先级。但是我只能找到需要预定义优先级值的优先级功能(当任务在等待列表中较长时,我的权重就会提高)。

我希望有可能根据到达属性中的信息创建一个功能,该功能决定必须安排哪个任务。这可能吗?

谢谢。

[Roos

r simulation scheduling priority-queue
1个回答
0
投票
traj <- trajectory() %>% # ... renege_if( "recompute priority", out = trajectory() %>% set_prioritization(function() { # check attributes using get_attribute() # then, return the new prioritization values }) %>% # go 2 steps back to renege_if rollback(2)) %>% seize("your resource") %>% renege_abort() %>% timeout(some_task) %>% # trigger this before releasing the resource send("recompute priority") %>% release("your resource") %>% # ...

每个到达都订阅信号“重新计算优先级”,并尝试占用资源。队列中的那些最终将接收信号,将跟随信号处理程序设置新的优先级,然后回滚到与以前相同的情况:他们再次怀疑信号并进入队列。但是现在资源已释放,因此优先级最高的资源将占用该资源。

© www.soinside.com 2019 - 2024. All rights reserved.