Войти или зарегистрироваться

[Решено] Шедулеры

Статус
Закрыто для дальнейших ответов.

konfyciu98

Старожил
Пользователь
Баллы
123
Имя в Minecraft
konfyciu
Сколько по % тянет каждый из шедулеров от общей нагрузки на сервер? Хотя бы примерную цифру.
 
Сколько по % тянет каждый из шедулеров от общей нагрузки на сервер? Хотя бы примерную цифру.
Как можно судить о нагрузке, если на неё полностью влияет код, который исполняет шедулер.
10 шедулеров, делающих простейшие действия будут меньше нагружать сервер одного, каждый тик перебирающего 1кк блоков
 
Допустим, есть шедулер, который через час исполнит маленький код(удаление из мапы игрока). А если таких шедулеров больше 100?
 
Допустим, есть шедулер, который через час исполнит маленький код(удаление из мапы игрока). А если таких шедулеров больше 100?
Насчет нагрузки не знаю, но стоит наверное задуматься над алгоритмом и сделать то, что вам нужно с помощью одного шедулера. Если расскажите идею, то помогу с алгоритмом.
 
Ещё можно запланировать старт параллельного потока, который делает что-то (но без вывозов API), и в конце выполнения планирует на ближайший тик какой-то финальный результат.
 
Насчет нагрузки не знаю, но стоит наверное задуматься над алгоритмом и сделать то, что вам нужно с помощью одного шедулера. Если расскажите идею, то помогу с алгоритмом.
В течении n-времени запретить атаковать игрока. Пока думал надо таким:
Код:
HashMap<Player, Boolean> isAtack = new HaspMap<Player, Boolean>();
public void shed(final Player player) {
  isAtack(player, false);
  getServer().getScheduler().шедулер(this, new Runnable() {
    public void run() {
      isAtack.put(player, true);
    }
  },60*60*20);
}
 
Да побоку сколько шедулеров.
 
Ещё можно иметь не Map с true и false, а просто Set, все в нём допустим false, остальные по умолчанию true.
Но, если знать, что HashSet вроде как основан на HashMap, то ничего в целом выигрышного не будет.
 
Создаёте секундный таймер и сверяете время добавления в мапу(нужно создать ещё одну), и если время прошло - удалить
 
А зачем каждую секунду проверять, если можно отдельно игроку задать таймер на определенное время?
 
А зачем каждую секунду проверять, если можно отдельно игроку задать таймер на определенное время?
Когда в чятгурде я делал отложенный таск для каждого сообщения, спустя время, это, мягко говоря, нагружало сервер. Но тут немного иная ситуация, но я так, к слову
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх