⟵ сюдатуда ⟶
  • Мастерклассы
  • Внешние подключения
  • Tableau и PowerBI
  • amoCRM
  • Битрикс 24
  • База знаний
  • Обращение к данным временной таблицы
  • Потеря связи с БД при большом трафике данных
  • Сохранить файл в поле по внешней ссылке url
  • Формирование списка из отмеченных галочками строк и вывод на печать
  • Добавление цикла в таблицу циклов кнопкой из временной таблицы
  • Функция TryCatch и передача данных после отката
  • Ошибка доступа при переходе в цикл если первая таблица недоступна для пользователя
  • Архитектура системы рассчитывающей остатки по кассе или складу
  • Сортировка при выборке по отображению поля Селект, а не по его основанию
  • Блокировка введения дублированного значения
  • Табличное отображение в контекстной панели
  • Сортировка строк в таблице с помощью кнопки
  • Как получить значение по условию из списка вложенных массивов?
  • Сбросить счётчик id в таблице
  • Скрытие поля в таблице по условию
  • Подтверждение действия при нажатии на кнопку в контекстном окне
  • Пересчет большой таблицы
  • Как суммировать значения в rowList по одному из ключей (по одной из колонок)
  • Наборы полей по условию при открытии через linkToTable
  • Как отложить выполнение действия и выполнить его в фоне
  • Создание и удаление строк при выборе значений в Селект или Селект-дерево
  • selectRowListForSelect с условием при котором текущее значение получается зачеркнутым
  • Не все внешние запросы на Remotes выполняются и ломается счетчик id
  • Сортировка Расчётных таблиц в Цикле
  • Как передать данные в виде чисел при обращении POST к API стороннего сервиса (must be a "integer")
  • Как сделать график если есть несколько параметров
  • Сохранение изначальных значений в поле в случае, когда поле рассчитывается кодом
  • Как отложить выполнение действия и выполнить его в фоне

    Оригинал на GitHub

    Ссылка на GitHub ⟹

    Вопрос

    Есть задача: постить ботом комментарии к определенной записи в телеграм-канале. С этим есть сложности, так как, чтобы попасть в запись нужно знать id не отправленного сообщения, а id сообщения, которое сам телеграм пересылает в связанную группу (участники, которой могут комментировать записи).

    В результате, после отправки сообщения нужно выждать некоторое время (желательно немного, т.к. потом сообщение может затеряться), затем загрузить последние записи (чем меньше, тем лучше), найти среди них нужную по id отправленного сообщения для дальнейших отправок комментариев к нему.

    Если делать "в лоб", то телеграм не всегда успевает отдать обновление и приходит пустота. Я сделал через sleep, но это тормозит добавление строки и отправку основного сообщения (которое будет комментироваться).

    Задача выглядит так: как запустить выполнение действия "фоном" через 5 секунд.

    Ответ

    Для этой задачи можно использовать такой подход:

    1. Отделить это действие в отдельный процесс.

    2. В этом отдельном процессе прописать sleep в n-секунд

    В том месте, где у нас срабатывает триггер, вызывающий это действие, вызываем вложенный код через exec с параметром ssh: true.

    =: while(action: $action_1; action: $check; action: $action_3)
    
    check: exec(code: $code; ssh: true)
    
    ```code:totum
    =: while(action: $sleep; action: $action)
    
    sleep: sleep(sec: 10)
    
    action: "some action"
     ```
    
    action_1: "some action"
    action_3: "some action"
    

    ssh: true — отделяет этот вызов в отдельный процесс, и теперь основное действие продолжится, а отделенный процесс подождет 10 секунд и потом выполнится.