Главный элемент управления Python - PullRequest
1 голос
/ 20 декабря 2011

Я столкнулся с проблемой и ищу руководства от нескольких ветеранов. Я написал программу на Python, которую я хотел бы запускать только периодически. Я собираюсь загрузить его на свой сервер, и мне бы хотелось, чтобы он работал каждый понедельник по пятницу и каждые 5 минут с 9:30 до 4.

По сути, я написал модули для запроса рынка и оценки ценных бумаг, которыми я владею. Я не хочу облагать налогом серверы, поэтому каждые 5 минут должно быть хорошо.

Что я хочу, так это несколько советов о том, как мне следует организовать основную последовательность. Должен ли я запускать программу из непрерывного цикла, который просто проверяет время? Или я должен запустить код, запланированный от демона? Мысли? * * 1005

Ответы [ 3 ]

3 голосов
/ 20 декабря 2011

Приложение должно делать одну вещь, и оно должно делать это хорошо.- unix philosophy


Если нет какой-либо реальной причины для поддержания приложения работающим 24/7 (согласованность данных или тому подобное), я 'очень рекомендую вам использовать демон для запуска его по некоторому расписанию.

Ваше приложение должно сосредоточиться на эффективном запросе рынка, не отслеживая, когда это сделать.


Примечание. Просто будьте осторожны, чтобы не запускать новый экземпляр часто, до того, как завершится предыдущий экземпляр вашего сценария Python.«Сделай одно, и сделай это хорошо» приходит сюда на ум.

2 голосов
/ 20 декабря 2011

cron может легко обрабатывать эту синхронизацию (хотя потребуется 2 записи), поэтому, если у вас нет экстремальных требований низкой задержки, лучше всего, чтобы он вызывал скрипт по требованию.

1 голос
/ 20 декабря 2011

Вы должны определить угол для последнего (запланируйте периодическое выполнение задачи), поскольку первый потребляет вычислительную мощность, которая может использоваться для обработки пикового трафика.(А если сценарий требует много ресурсов, значит, вы просто лишаете его вычислительной мощности.)

Один из проектов, о котором я слышал, может сделать это довольно легко, это проект Celery .Лично я не использовал его, но слышал, что это довольно хорошо.

...