Перейти до основного контенту

Як запланувати робочі процеси Cryptohopper MCP за допомогою cron, Планувальника завдань і GitHub Actions

Навчися планувати робочі процеси MCP Cryptohopper через cron, Task Scheduler Windows чи GitHub Actions. Скрипти налаштування, поради щодо змінних середовища та часті

Автор: Isaac

Передумови


Базовий шаблон

Усі три системи планування загортають один і той самий скрипт. Структура завжди така: запустити запит MCP → захопити вивід → доставити його. Переконайтеся, що змінні оточення встановлені, а вивід захоплено до лоґу.

# /home/you/scripts/daily_digest.py

import os
import requests

API_KEY = os.environ["CRYPTOHOPPER_MCP_KEY"]
TELEGRAM_TOKEN = os.environ["TELEGRAM_BOT_TOKEN"]
TELEGRAM_CHAT_ID = os.environ["TELEGRAM_CHAT_ID"]

def run_mcp_workflow(prompt: str) -> str:
# Ваш виклик бібліотеки клієнта MCP тут — створення тексту звіту.
...

def send_telegram(text: str) -> None:
requests.post(
f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage",
json={"chat_id": TELEGRAM_CHAT_ID, "text": text, "parse_mode": "Markdown"},
).raise_for_status()

if __name__ == "__main__":
prompt = open("/home/you/prompts/daily_digest.txt").read()
report = run_mcp_workflow(prompt)
send_telegram(report)

Налаштування — cron (macOS / Linux)

  1. Спочатку протестуй скрипт вручну

export CRYPTOHOPPER_MCP_KEY="..."
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_CHAT_ID="..."
python3 /home/you/scripts/daily_digest.py

2. Редагуй свій crontab

Запусти crontab -e та додай запис нижче. Cron не успадковує оточення твоєї оболонки — оголошуй змінні у верхній частині crontab.

CRYPTOHOPPER_MCP_KEY=your_key
TELEGRAM_BOT_TOKEN=your_token
TELEGRAM_CHAT_ID=your_chat_id
PATH=/usr/local/bin:/usr/bin:/bin

# Щодня о 08:00 за місцевим часом
0 8 * * * /usr/bin/python3 /home/you/scripts/daily_digest.py >> /home/you/logs/daily.log 2>&1

3. Перевір

Після запланованого часу перевір лоґ. Порожній лоґ означає, що cron не запустив скрипт. Помилки в лоґу означають, що він запустився, але зазнав невдачі.

bashtail -50 /home/you/logs/daily.log

Налаштування — планувальник завдань (Windows)

  1. Протестуй скрипт з Powershell

$env:CRYPTOHOPPER_MCP_KEY = "..."
$env:TELEGRAM_BOT_TOKEN = "..."
$env:TELEGRAM_CHAT_ID = "..."
python C:\Users\you\scripts\daily_digest.py

2. Налаштуй триґер

У розділі Triggers налаштуй розклад (щодня о 08:00, щотижня тощо).

3. Налаштуй дію

У розділі Actions: Program/script → python (або повний шлях до python.exe). Add arguments → C:\Users\you\scripts\daily_digest.py. Start in → C:\Users\you\scripts.

4. Обробка змінних оточення
Два варіанти: встановити їх як загальносистемні змінні через Control Panel → System → Environment Variables, або завантажити їх з файлу .env за допомогою бібліотеки python-dotenv.

5. Перевір

Перевір Last Run Result завдання у планувальнику завдань. 0x0 означає успіх; будь-що інше — це помилка.


Налаштування — GitHub Actions (хмарний хостинг)

  1. Створи репозиторій GitHub для своїх запланованих робочих процесів

    Додай свій скрипт до репо. Не коміть секрети.

  2. Додай секрети репозиторію

    Перейди до Settings → Secrets and variables → Actions та додай: CRYPTOHOPPER_MCP_KEY, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID.

  3. Створи файл робочого процесу

# .github/workflows/daily_digest.yml

name: Daily digest

on:
schedule:
- cron: "0 7 * * *" # 07:00 UTC щодня
workflow_dispatch: # дозволяє ручний триґер

jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install -r requirements.txt
- name: Run digest
env:
CRYPTOHOPPER_MCP_KEY: ${{ secrets.CRYPTOHOPPER_MCP_KEY }}
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
run: python scripts/daily_digest.py

Розклади GitHub Actions використовують UTC — відповідно конвертуй свій локальний час. Відстежуй запуски на вкладці Actions у репо; GitHub надішле тобі листа, коли запланований запуск завершиться з помилкою.


Вибір місця для планування

Варіант

Найкраще для

Недолік

cron

Локальні/особисті робочі процеси на машині, яка завжди увімкнена

Зупиняється, коли твій ноутбук засинає

Task Scheduler

Особисті робочі процеси на Windows

Незграбний інтерфейс, незручна обробка змінних оточення

GitHub Actions

Надійний, хмарний хостинг, безкоштовний для більшості особистого використання

Запуски можуть затримуватися під час навантаження на GitHub

VPS + systemd/cron

Надійність виробничого рівня

Ти керуєш сервером

Для більшості користувачів GitHub Actions є правильним вибором за замовчуванням: безкоштовний, надійний, а лоґи можна досліджувати, коли щось ламається.


Вирішення проблем

Cron job не запускається

Перевір grep CRON /var/log/syslog (Linux) або log show --predicate 'process == "cron"' (macOS). Найпоширеніша причина — відсутність PATH або відсутність змінних оточення — cron запускається в мінімальному оточенні.

Cron запускається, але скрипт одразу видає помилку

Майже завжди відсутня змінна оточення. Зроби так, щоб скрипт виводив чітке повідомлення про помилку і виходив раніше, якщо відсутня необхідна змінна оточення — не дозволяй йому мовчки зазнавати невдачі всередині виклику MCP.

Заплановане завдання запускається не в той час, що очікувалося

Часові пояси. Cron використовує локальний часовий пояс машини; GitHub Actions використовує UTC. Перевір розклад у передбачуваний час перед встановленням реального ритму.

Файл лоґу порожній, хоча скрипт запускається

Перенаправлення не захоплює stderr. Використовуй >> log 2>&1 — подвійна стрілка додає; одинарна > перезаписує кожен запуск і втрачає попередній вивід.

Розклад GitHub Actions пропускається

GitHub обмежує заплановані робочі процеси під час високого навантаження та іноді пропускає запуски. Щоб робочі процеси спрацьовували надійно, використовуй другий механізм планування як резервний або плати за виділений runner. Для більшості робочих процесів випадкові пропуски є прийнятними.

Заплановані запуски споживають твою квоту швидше, ніж очікувалося

Кожен запуск — це витрати. Відстежуй використання через як відстежувати витрати на Cryptohopper MCP. Щотижнева перевірка суми з кінцевої точки використання MCP швидко виявить неконтрольовані розклади.

Тобі потрібна точність планування менше хвилини

Жоден з цих планувальників не забезпечує надійної точності менше хвилини, і вона тобі рідко дійсно потрібна. Якщо ти думаєш, що вона тобі потрібна, відступи — робочий процес, ймовірно, краще розробити як подію, керовану веб-хуком.


Ви отримали відповідь на своє запитання?