Discord Bot и запланированные задачи - PullRequest
0 голосов
/ 20 апреля 2020

Мне нужно, чтобы Discord Bot взаимодействовал с каналами и пользователей моего сервера с помощью Windows запланированной задачи . По сути, мне нужно запустить скрипт (task. js) для этой запланированной задачи, отделенный от моего основного индекса. js файла. Мои вопросы:

  1. В этом задании. js файл Мне нужно создать new discord.Client() или я могу импортировать файл, который я уже создал в файле индекса. js? Должен ли я client.destroy() после того, как задача будет выполнена?
  2. Нужно ли снова входить в мой бот для клиента, тщательно client.login('token')?
  3. Каналы и пользователи будут готовы к использованию после события client.on('ready', () => {}. Итак, мне нужно поместить свой код в функцию обратного вызова этого события, чтобы оно работало правильно?

Бонус: В общем, когда мне действительно нужно сделать client.login('token')? Я все еще в замешательстве.

Заранее спасибо!

1 Ответ

2 голосов
/ 20 апреля 2020

Когда вы запускаете эту задачу из планировщика задач Windows, вы создадите еще один экземпляр узла, отдельный в памяти от вашего бота, который уже запущен, поэтому вам нужно будет снова войти в систему. Вам нужно будет дождаться готового события и правильно все разложить, когда задача будет выполнена. Вам всегда нужно выполнить client.login, прежде чем этот экземпляр объекта Client сможет взаимодействовать с Discord API от имени вашего бота.

Возможно, лучшее решение

Использование библиотеки планирования в узле на Ваш главный экземпляр бота. Взгляните, например, на узел cron . Эта библиотека позволяет запланировать вызов функции в любое указанное c время дня, месяца и даже года с использованием шаблона crontab GNU. Это позволяет вам использовать уже зарегистрированный экземпляр вашего бота, сохраняя несколько вызовов в API Discord для входа в систему вашего бота, работает быстрее, кроссплатформенно и менее сложно.

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