1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
<?php
namespace Net\Bazzline\Component\ProcessForkManager;
use Net\Bazzline\Component\MemoryLimitManager\MemoryLimitManager;
use Net\Bazzline\Component\TimeLimitManager\TimeLimitManager;
use Symfony\Component\EventDispatcher\EventDispatcher;
class ForkManagerFactory
{
public function create()
{
$event = new ForkManagerEvent();
$eventDispatcher = new EventDispatcher();
$memoryLimitManager = new MemoryLimitManager();
$taskManager = new TaskManager();
$timeLimitManager = new TimeLimitManager();
$memoryLimitManager->setLimitInMegaBytes(128);
$memoryLimitManager->setBufferInMegaBytes(8);
$timeLimitManager->setLimitInHours(1);
$timeLimitManager->setBufferInMinutes(4);
$manager = new ForkManager();
$manager->injectEvent($event);
$manager->injectEventDispatcher($eventDispatcher);
$manager->injectMemoryLimitManager($memoryLimitManager);
$manager->injectTimeLimitManager($timeLimitManager);
$manager->injectTaskManager($taskManager);
$manager->setMaximumNumberOfThreads(16);
$manager->setNumberOfMicrosecondsToCheckThreadStatus(100000);
return $manager;
}
}