Powershell sql запрос с логикой c внутри cron - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь переместить простой запрос sql в задание cron. Запрос получает некоторые данные из базы данных, и я хочу, чтобы задание cron обновляло меня каждые 5 минут.

Дело в том, что я знаю, как создать запрос + Я знаю, как создать простой cron. задание, но я не знаю, как объединить запрос с command в задании cron.

Также Я бы хотел немного логики c в запросе - скажем, если результат выше X, то я хотел бы использовать интерфейс ILogger, чтобы регистрировать / уведомлять меня о результате.

У меня нет большого опыта работы с командная строка, поскольку я всегда помещаю свою логику c в класс в проекте - решение и думал, что, возможно, команда powershell внутри поля command будет решением?

Моя задача cron следующая :

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: sqlquery
  labels:
    job-name: sqlquery
spec:
  schedule: "*/5 * * * *" # every 5 min
  startingDeadlineSeconds: 120
  failedJobsHistoryLimit: 3
  jobTemplate:
    spec:
      template:         
        metadata:
          name: sqlquery
        spec:
          containers:
          - name: sqlquery
            image: myregistry/sqlquery
            command: $mysql -u myuser -p mypassword -e 'SELECT * FROM [dbo].[Baseballplayers]
                    WHERE [Age] = [Senior]
                    AND DATEADD(DAY, -1, GETUTCDATE
                    GROUP BY [Baseballid]
                    ORDER BY [TeamRank] DESC' MyDatabase
                    # I would like to somehow run the sql query - and do some logic on the result.
                    # All of this inside the cron job, if possible.
          restartPolicy: OnFailure

1 Ответ

0 голосов
/ 18 марта 2020

Вы можете создать сценарий оболочки, например, test.sh, который будет содержать mysql query.

output=$(mysql -u myuser -p mypassword -e 'query')

Затем использовать переменную output для дальнейшей обработки.

И поместить Сценарий оболочки в Cron Job использует следующую команду:

crontab -e

Добавить новую запись

*  *  *  *  *  sh path/test.sh  &> path/test.out

Здесь * * * * * обозначает MIN HOUR DayOfMonth MonthOfYear DayOfWeek соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...