Подходящий язык для cron Jobs? - PullRequest
5 голосов
/ 02 марта 2010

Я понимаю, что это может зависеть от определенных вещей (и, очевидно, насколько эффективен код написан); но в целом, какой язык наиболее подходит и, возможно, эффективен для написания заданий cron?

Это просто сводится к вопросу о том, какой период языка наиболее эффективен, или специфика заданий cron может определять один язык программирования над другим?

Также, влияет ли работа базы данных MySQL на язык программирования для заданий cron?

Ответы [ 4 ]

4 голосов
/ 02 марта 2010

Любой язык (в случае MySQL, любой язык с библиотеками mySQL) можно использовать, если он имеет:

  1. Интерфейс командной строки. Не уверен, какие языки разобщают - по-видимому, даже в LOGO теперь есть реализации с поддержкой CLI, хотя то, что использует LOGO в фоновой программе, мне не подходит:)

  2. Результирующий код запускается на любой системе, на которой работает демон cron (чаще всего на сервере Unix, но я предполагаю, что есть cron-порты для Windows и т. Д.) *

Любые другие соображения не имеют ничего общего с заданиями cron.

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

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

Для кода, чувствительного к производительности, обычным выбором является C ++ и / или Assembly для действительно оптимизированных вещей, но, если честно, обсуждение производительности полностью выходит за рамки вашего вопроса, и я уверен, что у него есть множество прекрасно отвеченных вопросов. в StackOverflow в другом месте.

1 голос
/ 02 марта 2010

Поскольку ваш код выполняется без присмотра в неурочные часы, вам нужен язык с хорошей обработкой ошибок и отчетами. А именно, он должен распечатать трассировку при сбое.

0 голосов
/ 02 марта 2010
  • Bash: вездесущий, простой, превосходный в операциях с файлами, может затруднить выполнение операций MySQL.

  • Perl: вездесущий, хорошо известный Unix бородатым системным администраторам, невероятно большое хранилище библиотек. Может быть немного сложно поддерживать вас, если вы не будете осторожны со стилем вашего кода.

  • Python: вездесущий, но может быть и более старые версии (все, что Python 2.3+ хорош, и вы вряд ли найдете старое в дикой природе), отличные библиотеки, простота использования, поддерживаемый код из-за более строгого синтаксиса, чем perl. Может быть немного сложнее найти людей, которые уже знают это, но не должно быть так сложно набрать скорость.

Как Perl, так и Python прошли длительное тестирование привязок MySQL и стали стандартными, как и bash, почти во всех операционных системах Unix.

0 голосов
/ 02 марта 2010

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

Я также видел несколько PHP-скриптов, вызываемых из cronjob - у нас есть стороннее PHP-приложение, которое связывает cron.php каждый час.

Практически все, что может быть запущено из командной строки, может быть запущено из cron, поэтому вы можете получить доступ к инструментам командной строки MySQL изнутри bash, как если бы вы делали это вручную в оболочке. Если приложение / скрипт PHP написано так, что оно не зависит от веб-сервера (приложения, основанные на модели MVC, являются хорошим кандидатом), его также можно вызвать с помощью php -f <php_script.php> из задания cron.

...