Un set de comportamente şi constrângeri care se aplică taskurilor care sunt capabile de execuţie asincronă, cum ar fi concurenţa maximă şi dimensiunea maximă de coadă.
Name | Type | Default | Description |
---|---|---|---|
id | şir | Un ID de configuraţie unic. | |
maxPolicy |
| loose | Indică dacă concurenţa maximă este impusă lejer sau strict pentru taskurile care rulează în firul lansatorului de taskuri. Taskurile pot rula pe firul lansatorului de taskuri când se foloseşte metoda invokeAll fără timp, sau dacă se invocă un singur task metoda invokeAny fără timp. Dacă atributul run-if-queue-full este configurat, este posibil pentru taskuri să ruleze în firul lansatorului de taskuri şi la folosirea metodelor execute şi submit. În toate aceste cazuri, acest atribut determină dacă sau nu rularea pe firul lansatorului se numără la concurenţa maximă. loose Concurenţa maximă este impusă lejer. Li se permite taskurilor să ruleze pe firul lansatorului de taskuri fără să conteze pentru concurenţa maximă. strict Concurenţa maximă este impusă strict. Taskurile care rulează în firul lansatorului de taskuri contează pentru concurenţa maximă. Această politică nu permite taskurilor să ruleze pe firul lansatorului de taskuri când este atinsă deja concurenţa maximă. |
maxWaitForEnqueue | O perioadă de timp cu precizie de milisecunde | 0 | Specifică durata maximă de aşteptare pentru punerea în coadă a unui task. Dacă nu se poate pune taskul în coadă în acest interval, lansarea taskului devine se supune politicii run-if-queue-full. Atunci când aşteptarea maximă pentru punerea în coadă este actualizată, actualizarea se aplică numai taskurile lansate după acest moment. Taskurile lansate care deja aşteaptă pentru o poziţie în coadă continua să aştepte timpul configurat în valoarea anterioară. Specificaţi un întreg pozitiv urmat de o unitate de timp, care poate fi ore (o), minute (m), secunde (s) sau milisecunde (ms). De exemplu, specificaţi 500 milisecunde ca 500ms. Puteţi include valori multiple într-o singură intrare. De exemplu, 1s500ms este echivalent cu 1.5 secunde. |
runIfQueueFull | boolean | false | Se aplică la utilizarea metodelor <execute> sau <submit>. Indică dacă se rulează sau nu taskul pe firul de execuţie al remitentului când coada este plină şi s-a depăşit aşteptarea maximă plasarea într-o coadă de aşteptare. Dacă maximul politicii este configurat la strict, abilitatea de a rula pe firul de execuţie al remitentului este posibilă în plus pe constrângerea de concurenţă maximă. Dacă taskul nu poate rula pe firul de execuţie al remitentului, lansarea taskului este respinsă după depăşirea aşteptării maxime de punere în coadă. |
max | int Min: 1 | Specifică numărul maxim de taskuri care pot rula simultan. Valoarea implicită este Integer.MAX_VALUE. Concurenţa maximă poate fi actualizată când taskurile sunt în progres. Dacă concurenţa maximă este redusă sub numărul de taskuri concurente care rulează curent, actualizarea are efect gradual, pe măsură ce taskurile în progres se finalizează, în loc de a le anula. | |
maxQueueSize | int Min: 1 | Specifică numărul maxim de taskuri care pot fi în coadă aşteptând execuţia. Pe măsură ce taskurile sunt pornite, anulate sau abandonate, ele sunt înlăturate din coadă. Când coada este plină la capacitatea maximă şi este lansat un nou task, comportamentul este determinat de atributul de timp maxim de aştepare pentru punerea în coadă şi de atributul run-if-queue-full. Pentru a fi siguri că un anumit număr de taskuri pot fi puse în coadă într-un interval scurt de timp, utilizaţi o dimensiune maximă de coadă care este cel puţin atât de mare cât acea cantitate. Dimensiunea maximă de coadă este Integer.MAX_VALUE. Dimensiunea maximă de coadă poate fi actualizată în timp ce taskurile sunt în progres sau în coadă pentru execuţie. Dacă dimensiunea maximă de coadă este redusă sub numărul de taskuri curente care sunt în coadă, actualizarea are efect gradual, în loc să anuleze automat taskurile din coadă în exces. | |
startTimeout | O perioadă de timp cu precizie de milisecunde | Specifică intervalul de timp maxim între lansarea taskului şi pornirea taskului. Implicit, taskurile nu au timeout. Dacă sunt activate ambele, aşteptarea maximă pentru punerea în coadă şi timeout-ul de pornire, configuraţi timeout-ul d epornire să fie mai mare decât aşteptarea maximă pentru punerea în coadă. Când timeout-ul de pornire este actualizat în timpul utilizării, noua valoare de timeout se aplică taskurilor lansate după actualizare. Specificaţi un întreg pozitiv urmat de o unitate de timp, care poate fi ore (o), minute (m), secunde (s) sau milisecunde (ms). De exemplu, specificaţi 500 milisecunde ca 500ms. Puteţi include valori multiple într-o singură intrare. De exemplu, 1s500ms este echivalent cu 1.5 secunde. |