Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 1.62 KB

delay.md

File metadata and controls

75 lines (55 loc) · 1.62 KB

⏸ Delaying Requests

Sometimes in your application, you may want to introduce a delay in your requests. This may be to avoid hitting rate limits or to avoid overloading a development environment. With Saloon, you may use the defaultDelay and delay methods on either your connector or request to define a delay in milliseconds.

Default Delay

You may also wish to define a default delay on your connector or request. You can do this by extending the defaultDelay method.

{% tabs %} {% tab title="Connector" %}

<?php

class ForgeConnector extends Connector
{
    // Every request sent through this connector will have a 500ms delay.

    protected function defaultDelay(): ?int
    {
        return 500;
    }
}

{% endtab %}

{% tab title="Request" %}

<?php

class GetServersRequest extends Request
{
    // Every time this request is sent, a 500ms delay is added

    protected function defaultDelay(): ?int
    {
        return 500;
    }
}

{% endtab %} {% endtabs %}

Using the delay methods

You can also apply a delay to a connector or a request on the fly with the delay() method.

{% tabs %} {% tab title="Connector" %}

<?php

$forge = new ForgeConnector;

// Delay every request sent with the ForgeConnector by 500ms 

$forge->delay()->set(500);

{% endtab %}

{% tab title="Request" %}

<?php

$request = new GetServersRequest;

// Delay just this request instance by 500ms

$request->delay()->set(500);

{% endtab %} {% endtabs %}

{% hint style="warning" %} If you have defined the delay on both the connector and the request, the request delay will take priority. {% endhint %}