# Retries

Retries allow you to re-run a task upon failure. They're pretty easy to configure:

{% tabs %}
{% tab title="Class-based tasks" %}
For class-based tasks, you can adjust the number of times a task should be retried by setting the `RETRIES` and `RETRY_DELAY_SECONDS` class attributes:

* `RETRIES`: the number of times the task should be retried. Default is 0.
* `RETRY_DELAY_SECONDS`: the number of seconds to wait in between retries. Must be specified alongside `RETRIES`. Default is 0.

For example:

```python
# modules/example_task.py

import prism.task

class ExampleTask(prism.task.PrismTask):
    
    RETRIES = 1
    RETRY_DELAY_SECONDS = 60
        
    def run(self, tasks, hooks):
        test_str = "Hello, world!"
        return test_str
```

{% endtab %}

{% tab title="Function-based tasks" %}
For function-based tasks, you can adjust the number of times a task should be retried by setting the `retries` and `retry_delay_seconds` keyword arguments to the `@task` decorator:

* `retries`: the number of times the task should be retried. Default is 0.
* `retry_delay_seconds`: the number of seconds to wait in between retries. Must be specified alongside `retries`. Default is 0.

For example:

```python
# modules/example_task.py

from prism.decorators import task

@task(
    retries=1,
    retry_delay_seconds=60
)
def example_task(tasks, hooks):
    test_str = "Hello, world!"
    return test_str
```

{% endtab %}
{% endtabs %}
