|
запуск/удаление регламентных и фоновых задач программно | ☑ | ||
|---|---|---|---|---|
|
0
andrewch60
19.03.19
✎
12:46
|
1С 8.3 УФ
Ситуация такова: Реализовал на предприятии рассылку SMS уведомлений заказчиков опишу примерно как работает ПриЗаписи объекта SMS пользователем создается запись в регистре сведений SMSвОбработке с реквизитом Отправлено = Ложь Есть ОбщийМодуль РаботаСSMSAssistent с функциями ОтправитьSMS и ОбновитьСтатусыSMS ОтправитьSMS выбирает все записи SMSвОбработке с реквизитом Отправлено = Ложь и отправляет уведомления Если SMS ушла без проблем, то Отправлено устанавливаем в Истину, иначе уведомление оставляем в текущем состоянии и нужно пробовать отправить позже ОбновитьСтатусыSMS выбирает все записи SMSвОбработке с реквизитом Отправлено = Истина и обновляет Статусы SMS уведомлений Если получен конечный статус(доставлено/не доставлено/время жизни истекло), то данные по SMS уведомлению обновляются и запись из SMSвОбработке удаляется, иначе только обновляются данные по SMS Обновление статусов нужно делать периодически через пару минут после отправки, пока не получим конечные статусы по всем уведомлениям Создание и отправка будет производиться как из обработки, так и пользователями вручную Не хотелось бы ситуаций,когда вызванная моей обработкой отправка еще не отработала и в этот же момент другой пользователь пытается отправить свое уведомление (а в пакет отправки пойдут еще и все SMS отправляемые обработкой) То же самое с обновлением статусов, если нажмут кнопки "ОбновитьСтатус" почти одновременно, то и функции одни и те же данные будут обрабатывать. Хочу чтобы примерно так : пока ОтправитьSMS не отработала, остальные вызовы ожидают завершения и стартуют сразу после в порядке очереди причем, если не все удалось отправить, то необходимо еще и запланировать запуск через какой то промежуток времени(например 10 мин) чтобы пока есть sms к отправке 1С периодически вызывала ОтправитьSMS то же самое с ОбновитьСтатусыSMS с той лишь разницей, что первый запуск должен инициироваться из Отрпавки, а далее по расписанию или пользовательскому вызову, пока есть данные к обработке, а когда пусто, то не стоит впустую работать, будем ждать следующего вызова из Отрпавки Смотрю в сторону Фоновых Задач,как понимаю, если с ключом одним запускать , то второй вызов не пройдет(или будет ожидать), да и создавать и завершать их вроде можно программно... не приходилось самому работать с Регламентными и фоновыми задачами, поэтому прошу совета и помощи подскажите задумку можно реализовать |
| Форум | Правила | Описание | Секции | Поиск |