Цей розділ описує як створювати, керувати та моніторити задачі Cron в базі даних PostgreSQL.

Зауваження

Створення задачі Cron

  1. Відкрийте потрібну базу даних.
  2. Переконайтеся, що розширення pg_cron встановлено. Перейдіть до закладки Розширення Навігатора об'єктів і в списку розширень знайдіть pg_cron. Його сірий текст означає, що розширення ще не встановлено. Є два шляхи для його встановлення:
    • Використання інтерфейсу. Клікніть розширення, щоб вибрати його. Клікніть кнопку Утиліти на закладці Загальне і з випадаючого меню виберіть Встановити.
    • Використання SQL. Створіть нове вікно SQL і наберіть там наступну команду SQL:
      CREATE EXTENSION pg_cron;
      Клікніть кнопку Виконати запит. Якщо кнопка Commit активна, клікніть її для завершення транзакції.
  3. Перейдіть до закладки Задачі.
  4. Клікніть кнопку Створити над списком. Відкриється нове вікно SQL, в якому буде кістяк команди SQL для створення нової задачі Cron. Заповніть потрібні параметри в секції VALUES. Імовірно, найбільш складним для розуміння є параметр schedule, але ви можете знайти багато пояснень та прикладів в інтернеті. Приклад команди SQL для створення нової задачі Cron:
    SELECT cron.schedule (
      'Loading Data Warehouse',
      '20 0-23 * * *',
      'select dwh.load_dwh();'
    );
    
    або
    INSERT INTO cron.job (
      schedule,
      command,
      nodename,
      nodeport,
      database,
      username,
      active,
      jobname
    )
    VALUES (
      '20 0-23 * * *',
      'select dwh.load_dwh();',
      'localhost',
      5432,
      'dbmaster',
      'admin',
      True,
      'Loading Data Warehouse'
    );
    
    Тут значення 20 0-23 * * * означає о 20-й хвилині, щогодини, щодня, щомісяця, кожного дня тижня.
    Ще кілька прикладів значень параметра schedule:
    • */10 * * * *
       кожні 10 хвилин, щогодини, щодня
    • * 0-23 * * *
       щохвилини, щогодини, щодня
    • 30 0-23 * * 1-5
       о 30-й хвилині, щогодини, з понеділка по п'ятницю
    • */20 3 6-8 * *
       кожні 20 хвилин, o 3-й годині, лише в літні місяці, щодня
    • 15-45/5 8-19 * * *
       кожні 5 хвилин в діапазоні 15-45, щогодини в діапазоні 8-19, щодня
  5. Клікніть кнопку Виконати запит.
  6. Якщо кнопка Commit активна, клікніть її для завершення транзакції.
  7. Перейдіть до закладки Задачі Навігатора об'єктів і перевірте, що новостворена задача присутня у списку.

Зупинка/видалення задачі Cron

  1. Відкрийте базу даних і перейдіть до закладки Задачі.
  2. У списку задач виберіть потрібну задачу.
  3. Клікніть кнопку Утиліти на закладці Загальне і виберіть Видалити....

або виконайте команду SQL на кшталт цієї:

SELECT cron.unschedule (
  'Loading Data Warehouse'
);

Моніторинг задачі Cron

  1. Відкрийте базу даних і перейдіть до закладки Задачі.
  2. У списку задач виберіть потрібну задачу.
  3. Перейдіть до закладки Статистика. Тут можна бачити 100 останніх виконань задачі. Для оновлення даних клікніть кнопку Оновити над таблицею.

Редагування задачі Cron

  1. Відкрийте базу даних і перейдіть до закладки Задачі.
  2. У списку задач виберіть потрібну задачу.
  3. Клікніть кнопку Утиліти на закладці Загальне. Тут ви можете побачити, які операції з задачами доступні для вас.

Приклад редагування задачі Cron:

редагування задачі Cron в PostgreSQL

Зауваження: В будь-якому разі ви можете редагувати задачу засобами SQL. Всі параметри задачі зберігаються в таблиці cron.job, тому ви можете створити і виконати запит до бази даних такого типу:

UPDATE cron.job
SET schedule = '25 0-20 * * *' 
WHERE jobid = <your_job_id>;

Див. також:

 Відкриття баз даних

 Об'єкти баз даних