@Nullable
	private Machine checkDequeueItem(@NotNull Task<Result> task) {
		if(dequeueWatchPlugins.isEmpty()) {
			if(machines.isEmpty()) {
				return null;
			} else {
				return machines.get(0);
			}
		} else {
			for (Machine machine : machines) {
				for (DequeueWatch dequeueWatchPlugin : dequeueWatchPlugins) {
					if(dequeueWatchPlugin.check(task, machine)) {
						return machine;
					}
				}
			}
			return null;
		}
	}