2013-11-09 6 views
0

Я прочитал документацию о событии Box и был потерян о том, как правильно обработать событие с коротким порядком.Как справиться с нарушением порядка событий Box?

Согласно документу,

События будут иногда прибывают из строя. Например, файл-выгрузка может отображаться перед событием «Создание папки». Возможно, вам придется буферизовать события и применять их в логическом порядке.

Скажем, я получаю два ITEM_UPLOAD события назад от коробки сервера, которые для загрузки file_1 и file_2 и ITEM_UPLOAD событие для загрузки file_2 наступает раньше, чем для загрузки file_1.

Однако, что действительно происходит на стороне сервера, так это то, что загрузка файла_1 немного раньше, чем загрузка файла_2, а разница во времени настолько мала, что значения «created_at» и «registered_at» для обоих событий одинаковы. Разрешение этих двух марок времени является вторым уровнем.

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

Не могли бы вы дать мне некоторую информацию, чтобы разобраться в этой ситуации?

много спасибо.

================================================================================================================================== ===========

Событие ITEM_UPLOAD не может быть хорошим примером здесь. Что делать, если меня больше беспокоит событие ITEM_RENAME? Скажем, наше приложение может переименовать локальный файл на основе события ITEM_RENAME. Как-то я получаю два события ITEM_RENAME в одном файле, которые не соответствуют порядку, но с одинаковой меткой времени. Как я могу узнать, какое значение имени я должен использовать в двух событиях, не кэшируя метаданные всех полевых объектов (например, sequence_id)?

+0

Что вы делаете с информацией о событиях в своем приложении? – seanrose

+0

Наше приложение помогает нашим клиентам собирать события, произошедшие в их аккаунте, и поэтому они могут что-то сделать. Проблема здесь в том, что мы не можем предсказать, что наши клиенты хотят делать с информацией о событиях, поэтому мы пытаемся найти способ убедиться, что все события могут быть отсортированы на 100% правильно. – user2259674

ответ

1

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

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

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

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

Смежные вопросы