Если 50, rand не покатит, все заявки будут валится в первых манагеров. Нужно циклом вручную равномерно распределять согласно %. Запоминаешь на каком остановился и продолжаешь со следующего
Если 50, rand не покатит, все заявки будут валится в первых манагеров. Нужно циклом вручную равномерно распределять согласно %. Запоминаешь на каком остановился и продолжаешь со следующего
запоминать на ком остановился не имеет смысла, тебе вероятность нужна правильно посчитанная
флаг заведи для каждого - выдан таск\ не выдан. Если выдан, пропускаем, если не выдан, то считаем его_таски / таски_в_системе < xx% - выдаём таск. Если > то не выдаём таск. ставим флаг. Если таск отдать некому (у всех стоит флаг), то снимаем всем флаги. Будет равномерно, никто не уйдёт обиженным.
запоминать на ком остановился не имеет смысла, тебе вероятность нужна правильно посчитанная
Тут ещё есть другая сложность. Что бы вероятность работала нормально, нужно что бы % в сумме всегда был 100. Но сомневаюсь что этим будут долго заморачиваться 🙂
Тут ещё есть другая сложность. Что бы вероятность работала нормально, нужно что бы % в сумме всегда был 100. Но сомневаюсь что этим будут долго заморачиваться 🙂
у нас 3 менеджера, у первого вероятность 80, а второго 60, у третьего 90. Внимание вопрос, кому достанется джоба)
помнится когда-то очень давно я делал что-то подобное решил так
есть поле в нем хранится время выдачи задания эй база, выбери мне менеджеров у которых не исчерпан лимит и отсортируй их по дате последней выдачи задания берем менеджера и ставим ему текущее время
К сожалению, идеально распределить заранее неизвестное количество заявок по известному количеству менеджеров невозможно. Самый работающий вариант: - Выбрать всех менеджеров с наименьшим количеством заявок за сегодня (тут если углубится, можно и учитывать более длинные сроки, но это гораздо сложнее, чем кажется на первый взгляд) - выбрать из получившегося списка менеджеров одного с долей вероятности. Тут уже в ход вступает статья с вики
оп. Первый пункт из моего опуса тоже не нужен. Не надо выбирать менеджеров с меньшим количеством заявок. Надо просто выбирать из текущих менеджеров одного с вероятностью.