sedo26
|
|
« : 28 Апреля 2021, 12:28:46 » |
|
Подскажите кто как реализовал тариф посуточный, чтоб абонент мог его себе подключить из ЛК.
У нас все тарифы с 1-го по 1-е. Если я создаю тариф со сроком действия 1день/8грн, подключаю абоненту, то абонент может подключить себе в ЛК на следующий день обычный тариф, и стоимость пропорционально разобьётся на остаток дней, а так нехочется... Такая же ситуация с услугой "Приостановка".
Как можно сделать чтоб после "Приостановка" можно было подключить тариф "Посуточный", а после "Посуточный" - обыный тариф, но только с 1го числа. Модулем "короткие услуги" я так понимаю это тоже неполучится реализовать?
|
|
|
Записан
|
|
|
|
Warlock
NoDeny
Старожил
Карма: 8
Offline
Сообщений: 367
|
|
« Ответ #1 : 28 Апреля 2021, 15:52:07 » |
|
у меня в настройках самих услуг - Абонплата в сутки. выставляется стоимость, и если не хватает денег на полной продление, то включается посуточное списание. Режим услуг - стандарт
|
|
|
Записан
|
|
|
|
Nafanya
NoDeny
Старожил
Карма: 1
Offline
Сообщений: 459
|
|
« Ответ #2 : 08 Мая 2021, 09:09:54 » |
|
При создании услуги, выбираешь режим "пропорционально" В общем указываешь цену за месяц. Так же можно указать количество трафика, после значения которого будет сниматься деньги. И ежедневно будет насчитываться тариф, пропорционально дням. А снимет их или нет - это условие трафика.
|
|
|
Записан
|
Кому то Бог дал ручки, а кому то - грабельки.
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #3 : 10 Июня 2021, 10:08:03 » |
|
Я столкнулся с такой проблемой если тариф "Посуточный". В тарифе установлено "Не уходить в минус", у клиента не хватает средств соответственно статус услуги "Заморожен" Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время. Если перезапускаю ядро, то абонплата снимается сразу и тариф активируется, и так каждый раз. Может кто подскажет в чем может быть проблема. Спрашивал тут http://forum.nodeny.com.ua/index.php?topic=3263.msg36800#msg36800 к сожалению так никто не ответил. Подскажите где может быть проблема?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #4 : 10 Июня 2021, 15:23:02 » |
|
Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время.
модуль kernel/services.pm не менял? Могу описать как работает эта фича. Всем будет полезно. Когда приходит время переустановки услуг и обнаруживается, что денег не хватит, у услуги устанавливается: 1) стоимость 0 2) длительность услуги 0 длительность услуги 0 говорит что нужно услугу завершать как можно скорее и ставить новую. Но в kernel/services.pm есть защита от слишком частой перустановки услуг. Не только от этого, но и чтоб блокировать постоянную попытку установить если вдруг произошла какая-то критическая ошибка: $Errors->{$id} = $time + 120; Попытки не будут чаще пириода в 120 секунд. Возможно, это число у тебя изменено. Еще надо проверить с каким периодом вообще запускается функция переустановки: nod::tasks->new( task => sub{ main($_[0], $single, $config, $delay_services) }, period => 5, first_period => $single? 0 : 6, ); здесь видно, что каждые 6 секунд
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #5 : 15 Июня 2021, 09:44:48 » |
|
Клиент пополняет счет и активация тарифа проходит от 3-6 часов и больше, всегда разное время.
модуль kernel/services.pm не менял? Могу описать как работает эта фича. Всем будет полезно. Когда приходит время переустановки услуг и обнаруживается, что денег не хватит, у услуги устанавливается: 1) стоимость 0 2) длительность услуги 0 длительность услуги 0 говорит что нужно услугу завершать как можно скорее и ставить новую. Но в kernel/services.pm есть защита от слишком частой перустановки услуг. Не только от этого, но и чтоб блокировать постоянную попытку установить если вдруг произошла какая-то критическая ошибка: $Errors->{$id} = $time + 120; Попытки не будут чаще пириода в 120 секунд. Возможно, это число у тебя изменено. Еще надо проверить с каким периодом вообще запускается функция переустановки: nod::tasks->new( task => sub{ main($_[0], $single, $config, $delay_services) }, period => 5, first_period => $single? 0 : 6, ); здесь видно, что каждые 6 секунд Не менял, вот часть кода sub start { my(undef, $single, $config) = @_;
my $delay_services = { map{ $_ => 1 } split ',', $cfg::k_services_delay_services.'' }; keys %$delay_services && tolog 'Delay services:', $delay_services;
nod::tasks->new( task => sub{ main($_[0], $single, $config, $delay_services) }, period => 5, first_period => $single? 0 : 6, );
nod::tasks->new( task => sub{ service_recovery($_[0], $single, $config) }, period => 61, first_period => $single? 1 : 64, ); }
my $err_to_log = "Uid=$uid Unsuccessful attempt. The next try will be in 120 sec (service id=$id)"; $err_to_log .= '. Reason: '.$err->{for_adm} if ref $err eq 'HASH'; tolog $err_to_log; $Errors->{$id} = $time + 120; next; }
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #6 : 16 Июня 2021, 07:44:51 » |
|
А grep-ни лог по конкретному uid. Я, кстати, поэтому формат лога и изменил чтоб uid писался в каждой строке
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #7 : 19 Июня 2021, 19:29:15 » |
|
10.05.2021 00:39:15 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one 10.05.2021 00:39:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка 10.05.2021 04:52:13 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one 10.05.2021 04:52:13 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка 10.05.2021 09:05:42 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one 10.05.2021 09:05:42 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка 10.05.2021 13:20:37 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one 10.05.2021 13:20:37 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=115399). Reason: критическая ошибка 10.05.2021 17:36:49 Uid=8893 It's time to finish service id=115399 (Подобовий) and set next one 11.05.2021 19:08:00 Uid=8893 It's time to finish service id=121280 (Подобовий) and set next one 12.05.2021 20:28:33 Uid=8893 It's time to finish service id=121287 (Подобовий) and set next one 13.05.2021 22:05:40 Uid=8893 It's time to finish service id=121297 (Подобовий) and set next one 14.05.2021 23:36:32 Uid=8893 It's time to finish service id=121306 (Подобовий) and set next one 16.05.2021 01:11:04 Uid=8893 It's time to finish service id=121314 (Подобовий) and set next one 17.05.2021 02:41:43 Uid=8893 It's time to finish service id=121320 (Подобовий) and set next one 17.05.2021 02:41:53 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.05.2021 02:41:53 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.05.2021 06:56:33 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.05.2021 06:56:34 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.05.2021 11:11:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.05.2021 11:11:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.05.2021 15:26:53 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.05.2021 15:26:53 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.05.2021 19:43:15 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.05.2021 19:43:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 00:02:28 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 00:02:28 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 04:18:36 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 04:18:37 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 08:34:27 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 08:34:27 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 12:50:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 12:50:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 17:08:14 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 17:08:14 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.05.2021 21:26:07 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.05.2021 21:26:07 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.05.2021 01:43:44 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.05.2021 01:43:44 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.05.2021 06:00:21 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.05.2021 06:00:21 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.05.2021 10:14:17 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.05.2021 10:14:17 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.05.2021 14:26:43 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.05.2021 14:26:43 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.05.2021 18:42:19 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one
15.06.2021 15:34:47 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 15.06.2021 15:34:47 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 15.06.2021 20:04:35 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 15.06.2021 20:04:35 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 00:35:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 00:35:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 05:05:48 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 05:05:49 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 09:35:18 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 09:35:18 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 14:06:38 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 14:06:38 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 18:36:58 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 18:36:58 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 16.06.2021 23:07:22 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 16.06.2021 23:07:22 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.06.2021 03:37:41 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.06.2021 03:37:41 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.06.2021 08:07:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.06.2021 08:07:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.06.2021 12:38:45 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.06.2021 12:38:45 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.06.2021 17:09:03 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.06.2021 17:09:03 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 17.06.2021 21:39:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 17.06.2021 21:39:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.06.2021 02:11:08 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.06.2021 02:11:08 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.06.2021 06:41:04 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.06.2021 06:41:04 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.06.2021 11:10:36 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.06.2021 11:10:36 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.06.2021 15:39:09 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.06.2021 15:39:10 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 18.06.2021 20:06:18 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 18.06.2021 20:06:18 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.06.2021 00:32:44 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.06.2021 00:32:44 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.06.2021 04:50:35 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.06.2021 04:50:36 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.06.2021 08:59:15 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.06.2021 08:59:15 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.06.2021 13:12:24 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.06.2021 13:12:24 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка 19.06.2021 17:28:51 Uid=8893 It's time to finish service id=121323 (Подобовий) and set next one 19.06.2021 17:28:51 Uid=8893 Unsuccessful attempt. The next try will be in 120 sec (service id=121323). Reason: критическая ошибка
|
|
« Последнее редактирование: 19 Июня 2021, 19:51:41 от Jovani »
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #8 : 20 Июня 2021, 22:17:02 » |
|
Не могу понять где бока. По тестам у меня все ок. (В логе на "Reason: критическая ошибка" не обращать внимание, это следствие схемы работы модуля, как-нибудь сообщение пофикшу). Схема работы очень простая: В $Errors хранится время, когда можно пробовать переустанавливать услугу. В $time текущее время. $Errors->{$id} > $time && next; Если время, когда можно пробовать переустанавливать услугу больше текущего - переходим к обработке следующей услуги. Если ошибка переустановки: $Errors->{$id} = $time + 120; к текущему времени добавляем 120 секунд. Работает давно и у всех. Точно ничего не менял в файле? Перепиши новый из репозитория. Если запустить: perl nokernel.pl -v -m=services то запрос SELECT v.id, v.uid, s.module, s.title, u.balance ... выполняется каждые 5 секунд? И проблема только с одним тарифом или с любым у которого галка стоит "Не уходить в минус"?
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #9 : 22 Июня 2021, 11:32:33 » |
|
Не могу понять где бока. По тестам у меня все ок. (В логе на "Reason: критическая ошибка" не обращать внимание, это следствие схемы работы модуля, как-нибудь сообщение пофикшу). Схема работы очень простая: В $Errors хранится время, когда можно пробовать переустанавливать услугу. В $time текущее время. $Errors->{$id} > $time && next; Если время, когда можно пробовать переустанавливать услугу больше текущего - переходим к обработке следующей услуги. Если ошибка переустановки: $Errors->{$id} = $time + 120; к текущему времени добавляем 120 секунд. Работает давно и у всех. Точно ничего не менял в файле? Перепиши новый из репозитория. Если запустить: perl nokernel.pl -v -m=services то запрос SELECT v.id, v.uid, s.module, s.title, u.balance ... выполняется каждые 5 секунд? И проблема только с одним тарифом или с любым у которого галка стоит "Не уходить в минус"? Да, это проблема со всеми услугами с галкой "Не уходить в минус" запрос SELECT v.id, v.uid, s.module, s.title, u.balance ... не выполняется каждые 5 секунд. (вывод в прикрепленном файле) Точно ничего не менял в файле, уже переписал новый из репозитория. Restored 'kernel/services.pm' At revision 637.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #10 : 23 Июня 2021, 12:09:05 » |
|
Возможно какой-то иной модуль затупливает и не дает время для этого модуля. Попробуй отдельным процессом запустить services модуль: и не забудь убрать из автозапуска с основным ядром (в веб настройках отключается) и перезапустить основное ядро
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #11 : 23 Июня 2021, 15:33:50 » |
|
Возможно какой-то иной модуль затупливает и не дает время для этого модуля. Попробуй отдельным процессом запустить services модуль: и не забудь убрать из автозапуска с основным ядром (в веб настройках отключается) и перезапустить основное ядро Спасибо, так работает, (срабатывает через 120 сек.). root@nodenyplus:~ # ps -ax | grep noker 526 v0- S 1386:35.87 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=pingserver -d 527 v0- S 2059:50.52 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=notifications -d 72438 3- S 235:10.26 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=ponmon -d 71771 5 S 0:01.59 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d 71794 5 S 0:00.60 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d -m=services 72235 5 S+ 0:00.00 grep noker
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #12 : 23 Июня 2021, 17:07:17 » |
|
Сейчас возник вопрос автоплатежей. Если установлено "Не уходить в минус", автоплатеж по токену не списывает с карточки деньги. Как то решить можно?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #13 : 24 Июня 2021, 09:52:58 » |
|
|
|
|
Записан
|
|
|
|
Jovani
NoDeny
Постоялец
Карма: -9
Offline
Сообщений: 234
|
|
« Ответ #14 : 24 Июня 2021, 14:22:28 » |
|
|
|
|
Записан
|
|
|
|
|