Если вы хотите запускать X раз в день, установите для своей записи в crontab:
0 * / X * * * command_to_run
где X - почасовой интервал, на котором вы хотите запустить свою работу, чтобы получить желаемое количество казней / день. Например, используйте 2, чтобы запускать каждые два часа в общей сложности 12 казней в день.
В вашем коде используйте это вверху, чтобы заставить его спать в произвольное время вплоть до этого интервала cron:
# How long the program takes to run, in seconds. Be liberal unless having
# two instances running is OK.
EXECUTION_TIME = 10
INTERVAL = 2 * 60 * 60 - EXECUTION_TIME
sleep(rand(INTERVAL))
Идея состоит в том, что cron будет запускать вашу программу через регулярные промежутки времени, но затем продолжит некоторое случайное количество секунд в этом интервале, прежде чем продолжить.
Измените значение EXECUTION_TIME на столько времени, сколько, по вашему мнению, потребуется для выполнения кода, чтобы дать ему возможность завершить работу до наступления следующего интервала. Измените «2» в ИНТЕРВАЛЕ на любой интервал времени.
Я не проверял это, но оно должно работать или, по крайней мере, направить вас на правильный путь.