в cron прописывается событие (фактически просто функция в которой вы и делаете смену валют). По поводу обращения с кроном он просто вызывает определенные функции, я обычно смотрел примеры этих функций и писал подобие.
Посмотреть примеры можно введя в адресную строку http://ваш_сайт/cron.php
пример с одной системы (у вас функции могут отличаться, зависит от версии и делали ли чего уже с cron)
This file should be executed by cron only. Please, run it via HTTP for test only.
Notice: maximum priority level can accept values between "1" and "10", where "1" is maximum priority.
Executed event handlers:
1. config::runGarbageCollector (umiEventPoint), priority = 5, not critial
2. news::feedsImportListener (umiEventPoint), priority = 5, not critial
3. eshop::chronopay_validateAllTransactions (umiEventPoint), priority = 5, not critial
потом ищем саму функцию. Например, feedsImportListener.
- Функция вызывается в файле /classes/modules/news/events.php строчкой
<?php
$onCronNewsRead = new umiEventListener("cron", "news", "feedsImportListener");
?>
немного пояснения синтаксиса:
$Какая-нибудь_переменная = new umiEventListener("Название_события_в_нашем_случае_это_cron", "название_модуля", "название_функции")
- Сама функция лежит тут /classes/modules/news/__rss_import.php
Много интересного про события можно почитать тут Статьи на wiki про eventsто есть мы пишем функцию в файле __custom.php
и потом прописываем его в файле custom_events.php
Подводные камни:
1. раньше (по моему у версии 2.8.2.) была такая ошибка, что одна из стандартных функций которые выполнял cron, заканчивалась exit(); и соответственно cron сворачивал работу, по моему это было в функции подписки (где-то в папке dispatches), так что если у вас что-то не работает проверти эту функцию.
2. еще, если у вас очень долгая функция (то есть выполняется долго), то она просто может не успевать выполниться и это никак не отобразиться, так что проверте свою функцию до того как ставить её в cron и потом удивляться почему не произошли изменения (у меня был пример обработки порядка 8000 объектов и скрипт не успевал обработать их всех, в итоге увеличивали время работы для этого скрипта, хотя можно просто разбивать скрипт на части, но это уже отдельный вопрос)
P.S.по моему сама функция обновления курса валют уже есть в umi, по крайне мере мне казалось что они уже такое реализовывали, так что может и каждодневное обновление они уже делали))