@iworkflow / dbos
DBOSдля @iworkflow/core。同行: @dbos-inc/dbos-sdk ^ 5.3;зависимость pg.
-
dbosRuntime({ systemDatabaseUrl }).start(def)——приложениеdef.app,очередьdef.app,версия<app>-patching. -
dbosClient()- старт, сигнал,查询по id。 -
,Модулизовущиедругдруга,делятоднусистемнуюбазу:
dbosRuntime({ systemDatabaseUrl })/dbosClient({ systemDatabaseUrl })илиDBOS_SYSTEM_DATABASE_URL;без адреса - отказ。Тестымодуля——всвоейбазе:одноимённыеочередиперехватываютзадачи。 -
Своё, схеме
iwf:heartbeat(прогрессшага),birth(патчи кода, начавшего процесс)。 -
Запускмодулей——под咨询——замком:миграцииDBOSнапустойбазеиначеловят僵局。
-
Рантайм владеет dbos процесса:
stopснимает все регистрации dbos, повторныйstartрегистрируетзаново。 -
Прод——рольнамодуль:схемуведётвладелецбазы,модульбезDDL -
DBOS_ADMIN_URL=<владелец> bunx -p @iworkflow/dbos iworkflow-dbos migrate --prune --app italent=italentproduction ...(полный список модулей; без--pruneроли только добавляются;повторять после обновления пакета), модуляdbosRuntime({ systemDatabaseUrl, migrate: false, connection: { password: () => token() } })——входтокеном,остальноеизадреса(sslmode sslrootcert)。Триггеры:рольмодуляпишеттолькосвоипроцессы,чужому- завести очередь, отменить, послать сообщение;дочерний - только, модуля родителя, так чтоparentId, входиитогчужогопроцессазаписьювбазунеподделать。Роль вне списка - отказ。ВерсияDBOS_APPLICATION_VERSION- * * префиксом<модуль>-. -
Системной базы нет -
startсоздаёт™(нужен доступ™базе)postgresправо createdb), иначе заведи заранее。 -
Все поды 0:0:0:0:0
local:новыйподвосстанавливает悬而未决——процессы,покастарыйещёихведёт。В k8s - один под *strategy: Recreate, пока нет своего executor id на под。
Переменные: DBOS_SYSTEM_DATABASE_URL, DBOS_QUEUE_POLL_MS, DBOS_RESULT_POLL_MS, DBOS_APPLICATION_VERSION.