Перейти до

Снятие денег за дополнительные услуги


Рекомендованные сообщения

Кроме стандартных способов оплаты в СТГ мы еще снимаем деньги за доп.услуги

В OnConnect:

/etc/stargazer/sgconf set -s 127.0.0.1 -p 5555 -a admin -w $STGPASS -u $LOGIN -c -$sum:PAY1

 

все вроди-бы нормально, но в некоторый случаях (при перезапуске СТГ, наверное когда активно подключаются пользователи) на некоторых пользователях скрипт останавливается на этой строчке.

если убиваю СТГ и запускаю опять - останавливается на том-же.

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

 

Debian Wheezy x64, firebird2.5, stg-2.408

Ссылка на сообщение
Поделиться на других сайтах

А можно получить стектрейс на момент зависания?

Собрать в отладочном режиме (build debug), раскидать бинарники вручную (stargazer в /usr/sbin и файлы с расширением .so из modules в /usr/lib/stg). В момент зависания выполнить следующую последовательность действий:

  1. Посмотреть PID Stargazer'а (/var/run/stargazer.pid или через ps).
  2. gdb /usr/sbin/stargazer
  3. (gdb) attach <pid>
  4. (gdb) Ctrl+C
  5. (gdb) thread apply all bt
  6. (gdb) detach
  7. (gdb) quit

Выхлоп после thread apply all bt отправить мне на почту (faust@stg.dp.ua) или прислать ссылку на pastebin.com.

Еще интересно что указано в ExecutersNum в конфиге.

И еще интересно почему деньги за доп. услуги снимаются в OnConnect а не по крону.

 

PS: штатный способ снятия абонплаты за дополнительные услуги в процессе разработки, к стати.

Ссылка на сообщение
Поделиться на других сайтах

А можно получить стектрейс на момент зависания?

Собрать в отладочном режиме (build debug), раскидать бинарники вручную (stargazer в /usr/sbin и файлы с расширением .so из modules в /usr/lib/stg). В момент зависания выполнить следующую последовательность действий:

  1. Посмотреть PID Stargazer'а (/var/run/stargazer.pid или через ps).
     
  2. gdb /usr/sbin/stargazer
     
  3. (gdb) attach <pid>
     
  4. (gdb) Ctrl+C
     
  5. (gdb) thread apply all bt
     
  6. (gdb) detach
     
  7. (gdb) quit

Выхлоп после thread apply all bt отправить мне на почту (faust@stg.dp.ua) или прислать ссылку на pastebin.com.

Еще интересно что указано в ExecutersNum в конфиге.

И еще интересно почему деньги за доп. услуги снимаются в OnConnect а не по крону.

 

PS: штатный способ снятия абонплаты за дополнительные услуги в процессе разработки, к стати.

ExecutersNum=1

деньги за доп. услуги снимаются в OnConnect - при первом подключении в течении суток, если не пользовался, оплата не снимается

остальное - вечером

Ссылка на сообщение
Поделиться на других сайтах

Не вижу в первом посте.

Используете только СТГ ?

Или связку СТГ + Ubilling ?

 

Пусть даже Ubilling'а нет, но наведу на мысль как делаем мы.

В Ubilling в доп. поля профиля прописываем услугу (например белый IP или антивирус).

По крону в первых числах месяца запускается скрипт и проходит таких юзеров.

АП снимается с основного счета абонента.

 

ИМХО это интересней, чем делать это в OnConnect по очевидным (для меня) причинам.

Ссылка на сообщение
Поделиться на других сайтах

Первое что приходит в голову - выставить ExecutersNum в 2 или больше и посмотреть как это повлияет на ситуацию.

не помогает, пробовал

 

В Ubilling в доп. поля профиля прописываем услугу (например белый IP или антивирус).

По крону в первых числах месяца запускается скрипт и проходит таких юзеров.

ИМХО это интересней, чем делать это в OnConnect по очевидным (для меня) причинам.

оплата снимается при ПЕРВОМ в течении суток, если не пользовался, оплата не снимается. (как в мобилках: оплата за хвилину знімається в 1 сек кожної хвилини)

поэтому крон мне не интересен

Ссылка на сообщение
Поделиться на других сайтах

Между

оплата снимается при ПЕРВОМ в течении суток, если не пользовался, оплата не снимается. (как в мобилках: оплата за хвилину знімається в 1 сек кожної хвилини)

 

и

 

поэтому крон мне не интересен

вобще не вижу никакой взаимосвязи.

 

 

Не вижу проблем просто из онконекта просто устанавливать флаги активности пользователя а кроном ежесуточно колбасить доп. сервисы.

Это светит как минимум убиранием тяжелой логики из скриптов инициализации пользователей. На нормальных количествах абонентов это может оказаться очень полезным решением.

Ссылка на сообщение
Поделиться на других сайтах

Не вижу проблем просто из онконекта просто устанавливать флаги активности пользователя а кроном ежесуточно колбасить доп. сервисы.

Это светит как минимум убиранием тяжелой логики из скриптов инициализации пользователей. На нормальных количествах абонентов это может оказаться очень полезным решением.

о, хорошая идея. попробую сделать так.

Спасибо

Ссылка на сообщение
Поделиться на других сайтах

Эммм... я это вообще-то и имел ввиду...

Убирать проверку из OnConnect.

 

 

В Ubilling в доп. поля профиля прописываем услугу (например белый IP или антивирус).

По крону в первых числах месяца запускается скрипт и проходит таких юзеров.

АП снимается с основного счета абонента.

 

ИМХО это интересней, чем делать это в OnConnect по очевидным (для меня) причинам.

В Ubilling в доп. поля профиля прописываем услугу (например белый IP или антивирус). - или флаг (как говорил nightfly).

По крону в первых числах месяца запускается скрипт и проходит таких юзеров. (ну раз в сутки. Не суть же ... )

Ссылка на сообщение
Поделиться на других сайтах

Было у меня подобное когда-то. Проверить юзера на правильность всех записей.

У меня БД на файлах - было такое похожее.

 

Повторялось до тех пор, пока не сделал через скрипт перегруз(остановку) СТГ.

Ссылка на сообщение
Поделиться на других сайтах

Было у меня подобное когда-то. Проверить юзера на правильность всех записей.

У меня БД на файлах - было такое похожее.

 

Повторялось до тех пор, пока не сделал через скрипт перегруз(остановку) СТГ.

Можно узнать подробности? Особенно зачем понадобилось останавливать Stg?

Ссылка на сообщение
Поделиться на других сайтах
штатный способ снятия абонплаты за дополнительные услуги в процессе разработки, к стати.

если в разработке - то былобы неплохо сделать выбор периода абонплаты: час, день, месяц. и возможность снятия только в те дни, когда пользовался.

Ссылка на сообщение
Поделиться на других сайтах
штатный способ снятия абонплаты за дополнительные услуги в процессе разработки, к стати.

если в разработке - то былобы неплохо сделать выбор периода абонплаты: час, день, месяц. и возможность снятия только в те дни, когда пользовался.

А как можно определить пользовался ли абонент доп. услугой если она никак не учитывается в Stargazer? :)

Ссылка на сообщение
Поделиться на других сайтах

Было у меня подобное когда-то. Проверить юзера на правильность всех записей.

У меня БД на файлах - было такое похожее.

 

Повторялось до тех пор, пока не сделал через скрипт перегруз(остановку) СТГ.

Можно узнать подробности? Особенно зачем понадобилось останавливать Stg?

 

Да, разные штатные жизненные ситуации - для чего нужно было останавливать стг. Да и было это уже наверное года 3 назад, толи на 405, толи на 406 версии это было. Повторюсь, все это было, когда я неправильно останавливал стг, типа например kill -9 ..., толи пропадания электроенергии.

Как знаю, в тех версиях при записи с памяти в БД, не делалась промежуточная резервная запись, сейчас насколько я знаю - не должно быть этой проблемы, ибо вроде ты же сделал безопасный метод записи в базу.

madf, я нелуюсь пока ни на что, ну окрома, как хочется разных вкусностей в стг, но это ждем 5 версию. )))

Ссылка на сообщение
Поделиться на других сайтах

Было у меня подобное когда-то. Проверить юзера на правильность всех записей.

У меня БД на файлах - было такое похожее.

 

Повторялось до тех пор, пока не сделал через скрипт перегруз(остановку) СТГ.

Можно узнать подробности? Особенно зачем понадобилось останавливать Stg?

 

Да, разные штатные жизненные ситуации - для чего нужно было останавливать стг. Да и было это уже наверное года 3 назад, толи на 405, толи на 406 версии это было. Повторюсь, все это было, когда я неправильно останавливал стг, типа например kill -9 ..., толи пропадания электроенергии.

Как знаю, в тех версиях при записи с памяти в БД, не делалась промежуточная резервная запись, сейчас насколько я знаю - не должно быть этой проблемы, ибо вроде ты же сделал безопасный метод записи в базу.

madf, я нелуюсь пока ни на что, ну окрома, как хочется разных вкусностей в стг, но это ждем 5 версию. )))

Так в процессе работы все записи юзера правильные, они ж в памяти сидят.

Зависать, к стати, может из-за того что в OnConnect снимаем деньги и у юзера баланс уходит в "минус". При этом Stargazer пытается выполнить OnDisconnect, но Executer занят выполнением текущего OnConnect.

Ссылка на сообщение
Поделиться на других сайтах

))) Madf, я ж говорил, бились файлы. конкретно - краказябла была внутри файла, причем обычно это был 1 юзер, редко когда 2-3. Решением тогда я точно помню была фича в конфиге - делать резервную версию файла, перед записью файла. Да и давно это было, нету у меня этой проблемы сейчас. ))) Забыли все, ты наверное думаешь, что у меня эта проблема до сих пор есть, ее нету сейчас и уже давно нету.

Я просто предложил, как вариант поиска проблемы у создателя темы. Но забыл, что эта проблема уже решена, если не ошибаюсь с выходом 407 версии (правильно сливаются данные с памяти в БД).

Ссылка на сообщение
Поделиться на других сайтах

))) Madf, я ж говорил, бились файлы. конкретно - краказябла была внутри файла, причем обычно это был 1 юзер, редко когда 2-3. Решением тогда я точно помню была фича в конфиге - делать резервную версию файла, перед записью файла. Да и давно это было, нету у меня этой проблемы сейчас. ))) Забыли все, ты наверное думаешь, что у меня эта проблема до сих пор есть, ее нету сейчас и уже давно нету.

Я просто предложил, как вариант поиска проблемы у создателя темы. Но забыл, что эта проблема уже решена, если не ошибаюсь с выходом 407 версии (правильно сливаются данные с памяти в БД).

С битым файлом он бы даже не стартонул.

Ссылка на сообщение
Поделиться на других сайтах

А, я и не говорил, что он у меня стартовал. ))) Да и не важно это, это было давно и нету этой проблемы сейчас, я просто предложил автору, как вариант решения.

Ссылка на сообщение
Поделиться на других сайтах

А, я и не говорил, что он у меня стартовал. ))) Да и не важно это, это было давно и нету этой проблемы сейчас, я просто предложил автору, как вариант решения.

Не, ну как же так? Топикстартер пишет о зависании OnConnect, ты говоришь что у тебя тоже такое было. Но тут оказывается что Stg даже не стартовал! Как-же что-то могло зависнуть если оно даже и не работало?!

Ссылка на сообщение
Поделиться на других сайтах
PS: штатный способ снятия абонплаты за дополнительные услуги в процессе разработки, к стати.

Эммм, а это как?

Автомагически :)

Сервисы.

Ссылка на сообщение
Поделиться на других сайтах
Всегда были. Только не работали.

Поговорим о интеграции? :)

 

Я бы свои инвалидные "Виртуальные сервисы" по дороге деприкейтнул...

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від dummy
      Привет
      для снятия денег за дополнительные услуги в скрипте OnConnect вызываю
      /etc/stargazer/sgconf set -s 127.0.0.1 -p 5555 -a admin -w STGPASS -u $LOGIN -c -$sum
       
      заметил неприятную вещь: после перезапуска СТГ (когда много запросов на подключение) бывают случаи, что sgconf подвисает (помогает только КИЛЛ) и, что самое обидное, больше sgconf не работает (зависает).
      Это, я так понимаю, у него проблемы с многозадачностью ?
      аналогично, когда Stargazer Configurator открывает список абонентов, sgconf - тоже не работает
       
      может есть другие способы снятия денег или изменения других параметров СТГ, чтобы параллельно отрабатывались запросы ?
       
      Спасибо за помощь
×
×
  • Створити нове...