Каков стандартный способ написания программы для генерации счетов-фактур? - PullRequest
3 голосов
/ 13 июля 2010

Я строю биллинговую систему. Система должна генерировать ежемесячные счета для клиентов.

То, что я сейчас делаю, - это использование цикла For, чтобы проверить все клиенты их предыдущие счета и решить, настало ли время создать счет для клиента.

Если в базе данных огромное количество клиентов, я думаю, что это может быть очень тяжело.

Какой стандартный способ генерации счетов? Можно ли создавать задания cron, в которых записывается дата следующего счета клиента, и проверять конкретного клиента только тогда, когда пришло время создать счет.

Спасибо за миллион

Ответы [ 3 ]

3 голосов
/ 13 июля 2010

Вы упоминаете базу данных. Почему бы вам не использовать это?

Поместите индекс в столбец «дата предыдущего счета-фактуры», добавьте предложение WHERE, чтобы возвращать только клиентов, чей последний счет был отправлен более месяца назад.

1 голос
/ 13 июля 2010

Каков стандартный способ генерации счетов? Можно ли создавать задания cron, в которых записывается дата следующего счета клиента, и проверять конкретного клиента только тогда, когда пришло время создать счет.

Стандартного способа не существует. Но эта задача действительно типичный кандидат на пакетную работу. Либо запустите его в конце месяца, если вы выставляете счета всем клиентам одновременно или ежедневно и выбираете только тех клиентов, которые подлежат оплате на основании некоторых критериев даты. Для каждого клиента делай то, что должен. В зависимости от размера ваших данных JPA может не подходить (или, возможно, учитывать StatelessSession Hibernate или даже забыть его).

Что касается планировщика, я чаще всего видел планировщик предприятия, такой как Quartz, или даже более крупные специализированные решения, такие как Control-M, Dollar-U, TNG Workload и т. Д.

Я настоятельно советую НЕ создавать одну работу для каждого клиента. Это действительно не очень хорошее решение (черт возьми, администрировать, не масштабировать и т. Д.).

0 голосов
/ 13 июля 2010

Леон, я не уверен, существует ли на самом деле стандартный способ как таковой. Культура каждой компании в определенной степени определяет, как этот процесс лучше всего подходит для удовлетворения их потребностей. Вы найдете некоторые приложения, которые выполняют как экстремальные функции обработки по требованию, так и другие, которые запускают выставление счетов как пакетный процесс. В общем, приятно создавать интерфейсы для того и другого. вам также может понадобиться рассмотреть возможность того, что в какой-то момент третьему лицу потребуется ваш API через веб-сервис и т. д. (для экономии средств рассматриваемая компания может фактически использовать сервис бюро для «публикации» счетов - я знаю это по ручной опыт). Ваша структура базы данных также должна быть достаточно надежной и иметь множество резервных точек на случай сбоя любого из процессов и т. Д. И т. Д.

В любом случае - Дебаты ...:)

джим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...