Пусть у меня есть таблица в Azure Table Storageданных Azure Table Storage Консистенция
public class MyTable
{
public string PK {get; set;}
public string RowPK {get; set;}
public double Amount {get; set;}
}
И сообщение в Azure Queue, который говорит Добавить 10 до Сумма.
теперь говорят, один работник роль
- принимает это сообщение из очереди
- принимает строку из таблицы
- Сумма + = 10
- обновления строки в таблице
- и не
Через некоторое время сообщение снова появится в очереди. Так что в следующей рабочей роль:
- принимает это сообщение из очереди
- принимает строку из таблицы
- Суммы + = 10
- обновление строки в таблице
- Удаляет сообщение из очереди
Эти действия приводят к Amount += 20
вместо Amount += 10
.
Как избежать таких ситуаций?
Похоже, что это хорошая история для поиска событий; вы не хотели бы, чтобы отложенные сообщения следовали в неправильном порядке, не так ли? – Henrik