-
-
Notifications
You must be signed in to change notification settings - Fork 61
Continue As New #245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Continue As New #245
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/States/WorkflowContinuedStatus.php | Adds new continued status class |
| src/Traits/Continues.php | Implements continueAsNew() logic and promise marker |
| src/Models/StoredWorkflow.php | Adds continuedWorkflows relation and root/active methods |
| src/Workflow.php | Handles ContinuedWorkflow in handle() |
| src/WorkflowStub.php | Routes calls to the active workflow instance |
| tests/Fixtures/TestContinueAsNewWorkflow.php | New fixture for continue-as-new workflow |
| tests/Feature/ContinueAsNewWorkflowTest.php | Feature test validating continue-as-new behavior |
| tests/Unit/States/WorkflowStatusTest.php | Updates state config test to include continued status |
| tests/TestCase.php | Registers failed queue table migration |
| tests/.env.unit, tests/.env.feature | Defines QUEUE_FAILED_DRIVER=null |
| .github/workflows/php.yml | Exports QUEUE_FAILED_DRIVER in CI and adds log artifact |
Comments suppressed due to low confidence (1)
.github/workflows/php.yml:78
- Quoting
"null"makes it a string in the CI environment. Remove the quotes so that the runner interprets it as a true null value.
QUEUE_FAILED_DRIVER: "null"
…workflow/laravel-workflow into feature/continue-as-new
|
It seems that this works well if |
…ent workflow at completion
|
I found a solution and created #248. I don't know if this is how you'd prefer to do it, but this seems to work. I also haven't written any tests for it, but maybe this will be helpful for you. |
|
Thanks! I will get some time to review this tonight. For the most part, I want to follow Temporal's established patterns to maximize compatibility between the two but we can deviate a little if it makes sense. I'm trying to figure out if Temporal supports continueAsNew with child workfllows but it doesn't look like it. |
|
Ah, that's interesting that Temporal has that constraint. I appreciate your looking into it. |
fix: child workflows that call continueAsNew were not dispatching parent workflow at completion
|
@travisaustin I merged in your PR with some changes in the placement of your logic. Everything seems to be working for child workflows as well now. |
|
Hey @rmcdaniel! Thanks again for adding this. Is there any chance you'll include this in an upcoming release? |
|
@travisaustin Yes sir! I'll try to get it out this weekend. |
This PR adds support for “continue as new” workflows, updating core classes, model relations, and tests to enable workflows to restart with new input through a ContinuedWorkflow marker.