В Oracle, в зависимости от версии:
10g и ниже - используйте Advanced Queuing. Откажитесь от работы, которую вы поставили в очередь на ключи, которые вы поставили в очередь.
11g и выше - если вы не хотите создавать проблемы с очередями, вы можете использовать предложение SKIP LOCKED
и получить свою работу SELECT FOR UPDATE
с задачей, над которой нужно работать; думайте об этом как о очереди без необходимости делать PL / SQL-вызовы.