Tasks Settings¶
There are a number of settings required to enable On-Demand and Scheduled tasks to work, we recommend you go through the following one-by-one…
In order of importance!
GCP_TASKS_DEFAULT_QUEUE_NAME
¶
Type: string
(required)
The name of the task queue on GCP used for on-demand tasks. This will be created (if not already present) when you enqueue your first task.
GCP_TASKS_DOMAIN
¶
Type: string
(required)
The base url of the server to which tasks will be pushed. In production, this’ll need to be set to the URL of your worker service (see Deploying Workers).
Tip
In local development, set up localtunnel and use its -s option to set
yourself an amusing subdomain. You can then set GCP_TASKS_DOMAIN = "https://king-julian-in-da-house.loca.lt"
in your
local environment, and receive https://
traffic.
That’s awesome, because (assuming you’ve installed local credentials per Locally it allows you to spin up actual real queues and schedules on GCP to get a feel for how this all works.
GCP_TASKS_RESOURCE_AFFIX
¶
Type: string
Default: None
This is a label which is affixed to the names of all resources created by django_gcp
. It’s HIGHLY RECOMMENDED that you
set this to avoid confusion about what resources belong to what applications, and to enable cleanup of old resources.
If left unset, there’ll be no affix applied. This might be exactly what you want, for example if you manage all your task queues and scheduler jobs on existing infrastructure or using terraform, your own naming convention may already apply.
Warning
Without setting GCP_TASKS_RESOURCE_AFFIX
, django-gcp
won’t be able to clean up after itself so
you’ll have to remove any resources manually yourself.
Make sure you don’t have multiple independent django apps with the same affix, or one app may delete resources for another.
Note
SubscriberTask
subclasses that listen to a PubSub topic don’t automatically add a prefix to the topic name they listen to.
This allows you to subscribe to any topic on GCP for triggering tasks; if you want to use the prefix you can do so when
defining the topic_name
override
GCP_TASKS_REGION
¶
Type: string
Default: “europe-west1”
The region in which resources (Task Queues, Scheduler Jobs, and PubSub topics) are accessed and/or created.
GCP_TASKS_DELIMITER
¶
Type: string
Default: “–”
The delimiter used when creating resource names with an affix or other identifier.
GCP_TASKS_EAGER_EXECUTE
¶
Type: boolean
Default: False
If set to true, tasks will synchronously execute when their enqueue()
method ``is called (eg within a request).
Whilst not generally useful in production, this can be quite helpful for straightforward debugging of tasks in local environments.
GCP_TASKS_DISABLE_EXECUTE
¶
Type: boolean
Default: False
If set to true, tasks will not be enqueued for processing when their enqueue()
or enqueue_later()
methods are called. Instead, the method will simply return None without enqueuing the task, allowing for the
disabling of task execution. This can be useful in scenarios where tasks need to be temporarily disabled or
when testing/debugging task code.
It is important to note that this setting only affect tasks when their enqueue()
or enqueue_later()
methods are called and that tasks can still be executed manually even if this setting is set to True.