В CloudSim после запуска моделирования вы не можете создавать новые объекты, не требуя добавления нового потока, приостановки моделирования и добавления необходимых объектов.
В CloudSimПлюс вы можете сделать это легко двумя различными способами.
1) Вы можете определить задержку при отправке Cloudlets или виртуальных машин:
broker.submitCloudletList(cloudletList, delay);
broker.submitVmList(vmList, delay);
2) Вы можете использовать некоторые изПрослушиватель событий CloudSim Plus (например, тот, который отслеживает изменение часов моделирования), а затем отправляет новые Cloudlets или виртуальные машины уже существующему брокеру.Для этого вам сначала нужно добавить метод ниже в ваш класс моделирования:
/**
* Event listener which is called every time the simulation clock advances.
* @param info information about the event happened.
*/
private void clockTickListener(final EventInfo info) {
//at the desired time, submit new cloudlets
if(info.getTime() == 10) {
//@todo create your new cloudlets here
//submits another list of new created Cloudlets
broker.submitCloudletList(newCloudletList, delay);
}
}
и вызвать simulation.addOnClockTickListener(this::clockTickListener)
до simulation.start()
.
Существует множество полных примеров здесь .