开发者社区> 问答> 正文

如何在CloudSim Plus中为Cloudlets设置非相对提交延迟?

我想延迟Cloudlet的到来,以便稍后再来。我知道,setSubmissionDelay()但我希望提交延迟与当前的模拟时间无关setSubmissionDelay()。例如,如果一个cloudlet的延迟为5秒,那么它将在那时准确创建,而不是像5.10秒(从事件之间的最短时间开始为.10秒)那样创建。我曾考虑过要在将Cloudlet提交给VM的那一刻使用侦听器进行侦听和侦听,以获取时间(这可能是.10或一些小时间值),然后减去我的延迟时间该时间(cloudlet的当前延迟-当前模拟时间=非相对提交延迟)。

问题是我找不到执行此操作的侦听器。查看下面的控制台输出,我认为可能是使用了侦听器或某种方法来进行打印,然后才发送了cloudlet。如果存在类似的东西,我想使用它。任何对类似目标的文档或存储库的访问将受到高度赞赏。

参考:https : //github.com/manoelcampos/cloudsim-plus/tree/master/cloudsim-plus/src/main/java/org/cloudbus/cloudsim

[0;39m[34mINFO  0.10: DatacenterBrokerSimple2: Sending Cloudlet 0 to Vm 0 in Host 0/DC 1 with a requested delay of 9 seconds.

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 18:58:11 717 0
1 条回答
写回答
取消 提交回答
  • 您真的需要这么精确吗?0.1秒是一个很小的值。无论如何,您可以将数据中心设置schedulingInterval为所需的最小间隔(例如1秒),然后使用CloudSim Plus' onClockTickListener跟踪模拟时间并在需要时提交cloudlet。请参见下面的代码段,但不能保证将在您希望的时间准确触发该事件。

    public class Example{
        private static final int SCHEDULING_INTERVAL = 1; //in seconds
    
        public Example(){
           //.......... instantiate simulation objects here
    
           datacenter0.setSchedulingInterval(SCHEDULING_INTERVAL); 
           simulation.addOnClockTickListener(this::clockTickListener);
    
           //.......... the rest of the simulation code here
        }
    
        private void clockTickListener(final EventInfo info) {
            final int seconds = (int)info.getTime();
    
            if(seconds == 5) {
               //create and submit your cloudlets
            }
        }
    }
    

    查看RandomCloudletsArrivalExample.java了解更多详细信息。

    回答来源:Stack Overflow

    2020-03-25 18:58:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《用管控策略设定多账号组织全局访问边界》 立即下载
面向失败设计 立即下载
事务、全局索引、透明分布式 立即下载