set_time_limit () не будет работать, так как это устанавливает время для скрипта в целом. Я не уверен, если это действительно возможно с php, но вы могли бы справиться с разветвлением. Я подумываю о том, чтобы запустить таймер (используя time () для метки времени) и выполнить цикл, пока он не достигнет X time, в то же время разветвляя ваш $ this-> geitit () как дочерний процесс. Затем, когда таймер закончится, убейте дочерний процесс. Может работать, но не знаю.
Полагаю, возможно, альтернатива состоит в том, чтобы сделать его отдельным сценарием с заданным временем ожидания, используя эту set_time_limit (), а затем вызвать его из основного сценария, используя exec ()