Check for number of workers before soft failing the task. #104195

Merged
Sybren A. Stüvel merged 15 commits from Nitin-Rawat-1/flamenco:104190-job-stuck into main 2023-04-20 11:53:43 +02:00
7 changed files with 81 additions and 47 deletions
Showing only changes of commit 0b2c4349ec - Show all commits

View File

@ -115,3 +115,6 @@ enableRobotsTXT = true
[params.geekdocContentLicense]
name = "CC BY 4.0 - Blender Foundation"
link = "https://creativecommons.org/licenses/by/4.0/"
[params.flamenco]
bugreportURL = "https://projects.blender.org/studio/flamenco/issues/new?template=.gitea%2fissue_template%2fbug.yaml"

View File

@ -9,7 +9,7 @@ Join the community on the [#flamenco channel][chat] of Blender Chat do discuss
development topics. New faces are always welcome!
{{< button size="large" relref="/development/getting-started" >}}Get Started Developing Flamenco{{< /button >}}
{{< button size="large" href="https://projects.blender.org/studio/flamenco/issues/new?template=.gitea%2fissue_template%2fbug.yaml" >}}Report a Bug{{< /button >}}
{{< flamenco/reportBugButton size="large" >}}
If you want to know what kind of work can be done, take a look at the
[workboard][workboard].

View File

@ -40,7 +40,7 @@ file][workercfg].
## Can I change the paths/names of the rendered files?
Where Flamenco places the rendered files is determined by the job type. You can
create [your own custom job type][jobtypes] or check the existing
create [your own custom job type][jobtypes] or check the existing
[third-party job types][thirdpartyjobs] to change this. With that, you can
even add your own custom job settings like a sequence identifier and use that to
determine the location of rendered files.
@ -49,13 +49,13 @@ determine the location of rendered files.
## Can I use the Compositor to output multiple EXR files or Passes?
This is possible with Flamenco, but it takes a bit of work. Although it's not
managed by Flamenco's default job types, you can use a [custom job type][jobtypes]
for this.
managed by Flamenco's default job types, you can use a [custom job type][jobtypes]
for this.
With that, you have control over the arguments that get used before and/or after
the filename on the CLI.
There are Flamenco jobs out there that support compositor nodes,
There are Flamenco jobs out there that support compositor nodes,
multi-platform, and multiple pass outputs. You can check our [third-party jobs
section][thirdpartyjobs].
@ -110,7 +110,9 @@ hardware.
## Why do I get an Error Performing BAT Pack Message?
As of yet, we've only encountered the issue below on Windows installations.
As of yet, we've only encountered the issue below on Windows installations. If
you get this issue, please {{< flamenco/reportBugLink size="small" >}}let us
know{{< /flamenco/reportBugLink >}} so that it can be properly investigated.
```
Error performing BAT pack: [WinError 267] The directory name is invalid:
@ -120,8 +122,7 @@ Error performing BAT pack: [WinError 267] The directory name is invalid:
This is most likely some sort of incompatibility that occurs in some cases where
you might be using linked assets from an asset library in your project.
*To fix this you may attempt the following fix:*
* Go to **File -> External Data -> Make Paths Relative**
* Submit your job again.
To work around this issue, try the following:
That should fix the issue.
* In Blender, use File → External Data → Make Paths Relative.
* Submit your job again.

View File

@ -3,18 +3,17 @@ title: Available Third-Party Jobs
weight: 1
---
This section contains third-party jobs for Flamenco submitted by the community.
If you wish to contribute you might consider joining our
This section contains third-party job types for Flamenco. These have been
submitted by the community. If you wish to contribute, consider joining the
[Blender Chat channel][flamencochannel] and chime-in there.
## How can I create my own Job?
## How can I create my own Job Type?
Check how to create a custom job in our [Job Types][jobtypes] section.
This is described [Job Types][jobtypes]. It is recommended to use the
[built-in scripts][built-in-scripts] as examples and adjust them from there.
It's recommended to use the [built-in scripts][built-in-scripts] as examples and build from there.
## Third-Party Job Types
## Third-Party Job List
{{< flamenco/toc-children >}}
[jobtypes]: {{< ref "usage/job-types" >}}

View File

@ -1,49 +1,50 @@
---
title: Compositor Nodes and Multi-Platform Storage Paths
title: Compositor Nodes
weight: 10
---
Job maintained by: Dylan Blanqué
*Job type documented and maintained by: [Dylan Blanqué][author].*
If you need to use Blender's **Compositor** Nodes with *Flamenco*,
a Python Script and a Flamenco Job have been contributed to the community.
[author]: https://projects.blender.org/Dylan-Blanque
{{< hint >}}
This is a community-made job type. It may not reflect the same design as the
rest of Flamenco, as it was made for a specific person to solve a specific need.
{{< /hint >}}
This job type updates Blender's compositor nodes to work with Flamenco.
You'll need to do the following changes to support this workflow:
(It's recommended to use a symbolic link to the git repo files)
1. Download the [Flamenco Compositor Script ZIP file][compositorrepo] and extract it somewhere.
2. Copy `startup_script.py` to the configured Blender File Folder in your shared storage.
3. Copy `multi_pass_render.js` to the `scripts` folder in your Flamenco Manager installation folder (create it if it doesn't exist).
4. Add these variables to your `flamenco-manager.yaml` file:
- `storagePath`: Your NAS path, multi-platform variable.
- `jobSubPath`: Where the jobs are stored inside `storagePath`.
- `renderSubpath`: Where the render output is stored inside `storagePath`.
- `deviceType`: Compute Device Type to force. Do not set the variable if you wish to use whatever is available.
5. Submit your job from Blender with the corresponding Multi-Pass Job, it should
whatever compositor nodes you have set and correct the paths where necessary.
1. Clone the [Flamenco Compositor Script repository][compositorrepo]
(you'll need to install **git**) or download the files manually to a directory
in your Flamenco Manager/Server.
```bash
git clone https://github.com/dblanque/flamenco-compositor-script.git
```
2. Copy or make a symbolic link of the **startup_script.py** file.
to the configured Blender File Folder in your *Network Attached Storage*.
3. Copy or make a symbolic link of the multipass javascript job to the *scripts*
folder in your Flamenco Manager Installation (Create it if it doesn't exist).
4. Add and configure the required variables from the *example Manager YAML*
*Config* to your Flamenco Manager YAML.
* **storagePath** - Your NAS path, multi-platform variable.
* **jobSubPath** - Where the jobs are stored inside storagePath.
* **renderSubpath** - Where the Render Output is stored inside storagePath.
* **deviceType** - Compute Device Type to force *do not set the variable if*
*you wish to use whatever is available*
5. Submit your job from a Blender Client with the corresponding Multi-Pass Job,
it should whatever compositor nodes you have set and correct the paths where
necessary.
[compositorrepo]: https://github.com/dblanque/flamenco-compositor-script/archive/refs/heads/main.zip
[compositorrepo]: https://github.com/dblanque/flamenco-compositor-script.git
{{< hint type=warning >}}
This has only been tested in an environment with [Shaman][shaman] enabled, but it should work without Shaman as well.
[shaman]: {{< ref "/usage/shared-storage/shaman" >}}
{{< /hint >}}
**This has only been tested in an environment with Flamenco Manager and**
**Shaman enabled, but it should work without Shaman as well.**
# Example Configuration Flamenco Manager YAML
```yaml
# Configuration file for Flamenco.
#
# For an explanation of the fields,
# For an explanation of the fields,
# refer to the original flamenco-manager-example.yaml
_meta:
@ -99,4 +100,4 @@ variables:
value: "CUDA"
# Set the device type to FIRST or remove the variable definition
# to use whatever device type is detected first.
```
```

View File

@ -0,0 +1,19 @@
{{/* This is an adjusted copy of themes/hugo-geekdoc/layouts/shortcodes/button.html */}}
{{- $ref := .Page.Site.Params.Flamenco.bugreportURL -}}
{{- $class := "" }}
{{- $size := default "regular" (.Get "size" | lower) }}
{{- if not (in (slice "regular" "large" "small") $size) }}
{{- $size = "regular" }}
{{- end }}
{{- with .Get "class" }}
{{- $class = . }}
{{- end }}
<span class="gdoc-button gdoc-button--{{ $size }}{{ with $class }}{{ printf " %s" . }}{{ end }}">
<a
class="gdoc-button__link"
{{- with $ref }}{{ printf " href=\"%s\"" . | safeHTMLAttr }}{{ end }}
>Report a Bug</a>
</span>

View File

@ -0,0 +1,11 @@
{{/* This is an adjusted copy of themes/hugo-geekdoc/layouts/shortcodes/button.html */}}
{{- $ref := .Page.Site.Params.Flamenco.bugreportURL -}}
{{- $class := "" }}
{{- with .Get "class" }}
{{- $class = . }}
{{- end }}
<a class="{{ with $class }}{{ printf " %s" . }}{{ end }}"
{{- with $ref }}{{ printf " href=\"%s\"" . | safeHTMLAttr }}{{ end }}
>{{ $.Inner }}</a>