Попытка определить лучший дизайн для этого рабочего процесса - c # - 3.0 - PullRequest
0 голосов
/ 02 апреля 2010

Сервер ввода - файлы типа jpg, tif, raw, png, mov приходят по FTP

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

Затем каждый файл необходимо переместить в каталог заказов, где создается файл заказов, а затем упаковывается в zip-файл и перемещается на сервер обработки.

Имена файлов принадлежат [orderid_userid_guid]. [Jpg | tif | mov | png ...]

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

1 Ответ

1 голос
/ 02 апреля 2010

Я мог бы настроить систему очередей и обработки сообщений для этого.

Один процесс / поток / служба будет контролировать FTP-сервер, а при появлении новых файлов захватывать их и помещать в очередь (возможно, MSMQ или просто промежуточную папку и т. Д.)

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

Другой процесс отслеживает эту очередь и захватывает новые файлы для архивирования. После архивирования перейдите в другую очередь.

... и т. Д.

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

Вам не обязательно разбивать его на множество отдельных процессов и очередей - решать вам. «Очереди» также могут быть реализованы различными способами. Вы могли бы взглянуть на MSMQ как на начало, но вы могли бы также подумать о перемещении файлов между папками и т. Д. WCF и Windows Workflow Foundation могут оказаться хорошими технологиями для первого взгляда.

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