1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем konfyciu98, 15 июл 2014.

Статус темы:
Закрыта.
  1. Автор темы
    konfyciu98

    konfyciu98 Старожил Пользователь

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Сколько по % тянет каждый из шедулеров от общей нагрузки на сервер? Хотя бы примерную цифру.
     
  2. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Как можно судить о нагрузке, если на неё полностью влияет код, который исполняет шедулер.
    10 шедулеров, делающих простейшие действия будут меньше нагружать сервер одного, каждый тик перебирающего 1кк блоков
     
  3. Автор темы
    konfyciu98

    konfyciu98 Старожил Пользователь

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Допустим, есть шедулер, который через час исполнит маленький код(удаление из мапы игрока). А если таких шедулеров больше 100?
     
  4. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Насчет нагрузки не знаю, но стоит наверное задуматься над алгоритмом и сделать то, что вам нужно с помощью одного шедулера. Если расскажите идею, то помогу с алгоритмом.
     
  5. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ещё можно запланировать старт параллельного потока, который делает что-то (но без вывозов API), и в конце выполнения планирует на ближайший тик какой-то финальный результат.
     
  6. Автор темы
    konfyciu98

    konfyciu98 Старожил Пользователь

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    В течении 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);
    }
    
     
  7. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Да побоку сколько шедулеров.
     
  8. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ещё можно иметь не Map с true и false, а просто Set, все в нём допустим false, остальные по умолчанию true.
    Но, если знать, что HashSet вроде как основан на HashMap, то ничего в целом выигрышного не будет.
     
  9. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Создаёте секундный таймер и сверяете время добавления в мапу(нужно создать ещё одну), и если время прошло - удалить
     
  10. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Да именно так.
     
  11. Автор темы
    konfyciu98

    konfyciu98 Старожил Пользователь

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    А зачем каждую секунду проверять, если можно отдельно игроку задать таймер на определенное время?
     
  12. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Когда в чятгурде я делал отложенный таск для каждого сообщения, спустя время, это, мягко говоря, нагружало сервер. Но тут немного иная ситуация, но я так, к слову
     
  13. Автор темы
    konfyciu98

    konfyciu98 Старожил Пользователь

    Баллы:
    123
    Skype:
    wwwixelsor9
    Имя в Minecraft:
    konfyciu
    Ладно
     
Статус темы:
Закрыта.

Поделиться этой страницей