Мнезия: когда вы ограничите количество повторных транзакций? - PullRequest
1 голос
/ 08 февраля 2012

Mnesia позволяет вам ограничить количество попыток выполнения транзакции:

MyFun = fun() -> ... end,
{atomic, ok} = mnesia:transaction(MyFun, [], 42)

Если вы не укажете число, по умолчанию будет infinity.

никогда не видел код, который на самом деле ограничивает количество повторных попыток.У тебя есть?В каких случаях это полезно?

1 Ответ

1 голос
/ 08 февраля 2012

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

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

Однако, по моему личному опыту, системы реального времени с mnesia должны обрабатываться с использованием событий mnesia, в результате чего любая запись, обновление, удаление, вставка, e.t.c немедленно генерирует событие для всех подписанных процессов / серверов. Поэтому те, кто получит это сообщение о событии, предпримут любое возможное действие.

...