Jak mogę się upewnić, że zadanie nie zostanie uruchomione dwukrotnie w Bull?

Mam dwie funkcje scheduleScan()i scan(). scan()dzwoni, scheduleScan() gdy nie pozostaje nic innego, jak zaplanować nowy skan , więc scheduleScan()można zaplanować scan(). Ale jest problem, niektóre zadania uruchamiane są dwukrotnie. Chcę mieć pewność, że w danym momencie przetwarzane jest tylko...