C ++ код для выполнения файла каждый час - PullRequest
2 голосов
/ 09 мая 2011

В настоящее время я сталкиваюсь с проблемой, когда мне нужно выполнять пакетный файл каждый час. Может ли кто-нибудь предоставить код, который будет запускать указанный файл каждый час, например myfile.bat?

Ответы [ 4 ]

4 голосов
/ 09 мая 2011

Это не то, что вы решаете с помощью постоянно работающего процесса.Вы должны использовать запланированное задание для этого.Он решает все проблемы за вас.

Если вам абсолютно необходимо было сделать это в вашем собственном коде, то самое простое решение - это функция Sleep().Но я настоятельно рекомендую против такого подхода.

3 голосов
/ 09 мая 2011

CreateWaitableTimer в сочетании с любой из функций ожидания

2 голосов
/ 09 мая 2011

В зависимости от вашей системной среды вы можете легко сделать это с помощью cronjob.

С помощью cronjob вы можете запланировать это на любую минуту / час / день / и т.д. ...

Вы можетепредоставьте cronjob для выполнения пути к функции, где вы можете поместить exe-файл c ++ для запуска нужного вам сервиса.

Например: у меня запланирован cronjob каждый час для обработки функции php (это временноОбходной путь, обычно я просто запускаю сценарий php) для отправки электронных писем по схеме пользователя.

0 * * * * curl http://mydomain.com/my_email_scheduler.php

5 цифр, предшествующих моей функциивызов определяет время по расписанию

[минута] [час] [день] [месяц] [день недели] командная строка для выполнения

Cron job guide

РЕДАКТИРОВАТЬ :: только что заметил ваш комментарий о том, что у вас нет доступного планировщика задач ... Я бы тогда предложил перевести поток в режим ожидания каждый час и выполнять функцию после пробуждения.

0 голосов
/ 09 мая 2011

Альтернативой использованию сна будет использование таймеров . Это означает, что вам нужно пройти через процесс создания графического интерфейса (хотя, вероятно, оно того не стоит, если все так просто, как кажется) <- Мое плохо.Одним из преимуществ этого является то, что вы можете быть уверены, что что-то выполняется каждые полчаса, а не каждые полчаса + время выполнения, чем бы оно ни было. </p>

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