Является ли проблема сохранения состояния Workflow Foundation в памяти проблемой? - PullRequest
1 голос
/ 21 октября 2009

У нас есть подрядчик, который разработал систему, которая использует основу рабочего процесса в .NET 3.5. Один из моих коллег обеспокоен «тем, что служба рабочего процесса хранит состояние в памяти и, возможно, оно не синхронизируется с нашей базой данных».
Оправданы ли его опасения?

Ответы [ 2 ]

2 голосов
/ 21 октября 2009

Каким образом состояние хранится в памяти? WF имеет службу персистентности, например, когда Рабочий процесс переходит в состояние ожидания. Вы можете убедиться, что WF сохраняется в вашей базе данных. У нас нет проблем, например, добавление информации в конкретный рабочий процесс в перезапущенные среды выполнения WF - WF будет извлечен из БД и выполнен в правильном положении.

OK, перечитывая еще раз, вы могли бы иметь в виду, что если вы сохраняете состояние в рабочем процессе (например, в свойствах зависимостей действия), это может стать несинхронизированным. Это в значительной степени зависит от того, будет ли это нормально или нет. Сериализованный объект, созданный с данными БД, может быть не синхронизирован в WF, если исходные данные изменились. Если это проблема, вы, скорее всего, захотите воссоздать определенные объекты из данных БД, а не сохранять их как сериализованные объекты в вашей WF.

0 голосов
/ 21 октября 2009

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

...