Перейти к содержимому
Local
pavlabor

Требуется эмулятор StarGazerа.

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

21 минуту назад, Prime сказал:

принципы ACID

Возможно я чего то не понимаю, но принцип ACID реализован по крайней мере в PostgreSQL давным давно на уровне БД.

Это автоматическое отслеживание целостности базы, авто индексы и т.д.

Но это никаким образом не гарантирует сто процентной защиты от работы многопользовательской среды.

Вот это

24 минуты назад, Prime сказал:

работать напрямую с сервером бд не очень хорошая практика.

удобней и правильней иметь какой-то API для работы с биллингом, популярней и гибче HTTP - для биллинга сложно придумать.

это дает возможность интеграции с огромным количеством других компонентов.

Гарантия что не будет работать.

API, HTTP отдельные процессы распределенные во времени и не блокированные в БД.

Отсюда два менеджера будут вносить деньги одному и тому же пользователю, и деньги благополучно зачислятся, счетчики отработают, но сума не будет соответствовать действительности.

Механизм решения данной проблемы, блокировка записи на момент обработки, модель MVCC (Multiversion Concurrency Control, Многоверсионное управление конкурентным доступом).

Когда я писал свой биллинг в 2000-ных, не все было кучерявенько. Проконсультировавшись с програмерами которые писали учет для магазинов со ста тысячу транзакций в сутки, которые мне сказали "забей", я не стал заморачиваться.

И что то мне чуйка подсказывает что на текущий момент это не актуально - сдох попугай, купим другого.

Во первых, не вижу решения этой проблемы.

А если где то и глюконет, ну пофиксят челу оплату менеджеры.

 

По поводу проектирования структуры БД, это ответственная задача и некогда она не решалась с первого раза.

Но это и никогда не было проблемой.

Перелить базу на новый движок, это решаемо.

 

Основное в биллинге на мой взгляд это модульная обвязка, ubilling вылизанная система.

Хотелось бы поковыряться в базах данных olsasha, что там такое, что требует переписывать биллинг с нуля.

Если там добавлено пару полей, подпилен интерфейс модуля и выборки перестроены по другому, то это ревизия модуля а не всего биллинга.

 

Поэтому на мой взгляд стоит посмотреть что имеем, собрать докучи и подточить под текущие задачи и запускаться.

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

Дальше в одну прекрасную ночь все можно перелить в новый флакон.

 

Еще раз, со всего что я ставил за свою жизнь, ubilling не вызвал ни одной проблемы.

Вру, "мс" пересобрал.

 

 

29 минут назад, Prime сказал:

https://db-engines.com/en/system/Firebird;PostgreSQL

вот здесь можно сравнивать движки.

В 2000-ном, PostgreSQL уже дышал Oracl-у в спину.

Поделиться сообщением


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

 

но принцип ACID реализован по крайней мере в PostgreSQL давным давно на уровне БД.

Это автоматическое отслеживание целостности базы, авто индексы и т.д.

 

 https://ru.wikipedia.org/wiki/ACID

конечно на уровне БД все реализовано, просто нужно правильно взаимодействовать с данными, вы используете транзакции в своем коде?

https://www.postgresql.org/docs/9.1/static/sql-set-transaction.html

https://en.wikipedia.org/wiki/Multiversion_concurrency_control


 

Цитата

 

Гарантия что не будет работать.

API, HTTP отдельные процессы распределенные во времени и не блокированные в БД.

Отсюда два менеджера будут вносить деньги одному и тому же пользователю, и деньги благополучно зачислятся, счетчики отработают, но сума не будет соответствовать действительности.


 

Гарантия, что будет работать.

сходу 3 варианта решения: синхронизация api (топорно), select for update (row locking), оптимистик лок (версионирование)

Цитата

 

И что то мне чуйка подсказывает что на текущий момент это не актуально - сдох попугай, купим другого.

Во первых, не вижу решения этой проблемы.

А если где то и глюконет, ну пофиксят челу оплату менеджеры.

 

чуйка подводит, уже все знают об этих нюансах и пишут грамотно код.

Цитата

 

По поводу проектирования структуры БД, это ответственная задача и некогда она не решалась с первого раза.

Но это и никогда не было проблемой.

 

это всегда проблема, называется Домен. 

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

 

Цитата

Основное в биллинге на мой взгляд это модульная обвязка, ubilling вылизанная система.

в биллинге все основное.

я несколько лет работал в крупной компании, которая этим занимается.

отбило навсегда связываться с биллингами и процессингами 

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: msat
      Я в PHP ноль, ну может капельку больше...
      вики
      В обшем можно добавить SMS сервис путем складывания в /api/vendor/sms_services_APIs файлов реализации API СМС сервиса в виде PHP класса наследующего абстрактный класс SMSServiceApi. Что означает, что если поддержки вашего любимого необходимого вам СМС провайдера в Ubilling пока нет - добавить ее теперь стало относительно не сложно. 
       
      Ну кому как, а мне было сложно, даже очень.. двое суток потратил..
       
      Есть сервис https://semysms.net/ - из смартфона делаем SMS шлюз. их подобных много, но я этим пользуюсь.
      Вот их Документация по отправке смс через API
       
      Надеюсь в  Ubilling будет добавлена возможность добавления произвольного HTTP API
      что то типа такого https://example.com/api.php?apikey=myapikey&dsendr=#SENDR#&phone=#TEL#&msg=#MSG#
       
      Я проблему решил. Хоть и не безвозмездно, но помогли. Могу теперь сам их хоть 10 прикрутить(мне столько пока не надо). Теперь точно в PHP не полный ноль.
      А может и не нужен произвольный API. Кому сильно надо заплатит или сам разберется.
       
       
       
    • Автор: Poseidon
      Подскажите пожалуйста, как можно сделать, чтобы UBilling брал лог DHCP с микротик.  Надо MAC+IP который выдал дхцп сервер микрота, назначать абону статикой, если такой IP уже есть в базе биллинга, менять на свободный и отсылать на микротик.
    • Автор: msat
      Установил
      в stargazer.conf
      DayFee = 26  - абон спишется 26 числа.
       
      Есть такая фича:
      Показывать ли сколько дней осталось до окончания оплаченной услуги?
      ONLINELEFT_COUNT=1
      и
      Стиль показа оставшегося периода - количество дней или конечная дата предоставления услуги. Возможные значения days или date
      ONLINELEFT_STYLE='date'  
       
      Теперь заходим в Профиль пользователя
      Баланс    0 , хватит до 01.02.2019
      а должно быть 26.01.2019
      Как заставить правильно показывать???
       
    • Автор: msat
      в состоянии системы время 15:52:04 - соответствует времени на сервере и соответствует реальному.
      пополняем, смотрим время пополнения: 2019-01-11 17:52:42 
      на 2 часа позже
      все конфиги пересмотрел. 
      пожалуйста, ткните носом. Не могу найти...
    • Автор: msat
      Округление баланса пользователя до сотых (копеек).
      в alter.ini
      ROUND_PROFILE_CASH=1
      в userstats.ini
      ROUND_PROFILE_CASH=1
       
      Если делаю оплату в админке 1,99, то и в платежах получаем 1,99. Тут все норм.
       
      Вот с оплатой через яндекс так не получается...
      в фронтенде 
      /openpayz/frontend/yandex_notify/index.php
      снял комментарий
       //$summ = $_POST['amount']; //Сумма, которая зачислена на счет получателя.
       
      теперь:
      отправляю 2 р получаю перевод 1,99 в платежах 2
      отправляю 3 р получаю перевод 2,99 в платежах 3
      отправляю 55 р получаю перевод 54,73 в платежах 55
      а вот
      отправляю 300 р получаю перевод 298,51 и в платежах 299, те фронтед правильно отрабатывает!
       
      как заставить отображаться в платежах, то что получаем?
×