txAdmin redémarrages planifiés : définissez un redémarrage quotidien avec avertissements

Configurez les redémarrages automatiques dans txAdmin : le calendrier de redémarrage, les annonces avant redémarrage, pourquoi les redémarrages quotidiens aident, et comment sauvegarder les données des joueurs quand le serveur s'éteint.

Un serveur FiveM qui tourne pendant des jours s'aggrave lentement : la mémoire augmente, les scripts laissent des entités derrière, et les ralentissements deviennent plus courants. Un redémarrage planifié à une heure fixe est la correction la moins chère. txAdmin l'a intégré, avec des avertissements aux joueurs pour que personne ne soit surpris.

Pourquoi les redémarrages quotidiens aident

  • Mémoire. Certaines ressources continuent d'ajouter à des tableaux ou des entités qu'elles ne nettoient jamais. Un redémarrage ramène le serveur à un état frais.
  • État bloqué. Les entités résiduelles, les sessions cassées et les scripts dans un mauvais état disparaissent.
  • Prévisibilité. Les joueurs apprennent que le serveur s'éteint à, disons, 05:00 et planifient en conséquence.
  • Mises à jour. Vous avez un point régulier pour appliquer les mises à jour de script et les nouveaux artefacts. Voir updating server artifacts.

Un redémarrage cache une fuite, il ne la répare pas. Si le serveur est clairement plus lent après quelques heures, trouvez la cause avec resmon.

Définir le calendrier dans txAdmin

  1. Ouvrez le panneau web txAdmin et allez à Settings.
  2. Trouvez la section Restarter (redémarrages planifiés).
  3. Ajoutez les heures de la journée quand vous voulez un redémarrage, au format affiché, par exemple 05:00. Vous pouvez en ajouter plus d'une.
  4. Enregistrez.

La mise en page exacte varie selon les versions, donc cherchez la section du calendrier de redémarrage. Les heures suivent l'horloge de la machine qui exécute txAdmin, donc vérifiez son fuseau horaire si le redémarrage se produit à la mauvaise heure.

Choisissez l'heure la plus calme de votre serveur. Vérifiez votre graphique de joueurs avant de choisir.

Avertissements avant le redémarrage

txAdmin annonce les redémarrages à venir aux joueurs en jeu, avec un compte à rebours. Vous n'avez pas besoin d'écrire un script pour cela. Quand un redémarrage est planifié, les joueurs reçoivent des messages dans les minutes avant, et le message final quand il commence.

Vous pouvez aussi redémarrer à la main à partir du panneau à tout moment et donner une raison. Le message est montré aux joueurs en premier.

Conseil : dites à vos joueurs l'heure des redémarrages dans votre Discord et sur votre écran de chargement. Peu de gens objecteront à un redémarrage dont ils ont été informés.

Sauvegarder les données des joueurs à l'arrêt

Le risque d'un redémarrage est la perte de progression. Pensez-y comme à trois niveaux :

  1. Le framework sauvegarde les personnages régulièrement et quand un joueur se déconnecte (playerDropped). ESX, QBCore et QBox le font tous. Quand txAdmin arrête le serveur, les joueurs sont déconnectés, ce qui déclenche ces sauvegardes dans des conditions normales.
  2. Vos scripts doivent garder leurs propres données dans la base de données quand elles changent, ou sur un minuteur. Ne conservez pas la progression seulement dans une table Lua et écrivez-la à l'arrêt.
  3. Les hooks d'arrêt sont une dernière chance, pas un plan. Un serveur qui est tué ou s'écrase ne les exécute jamais.

txAdmin envoie des événements à vos ressources que vous pouvez utiliser, par exemple quand un redémarrage planifié arrive et quand le serveur s'éteint. Deux d'entre eux sont txAdmin:events:scheduledRestart et txAdmin:events:serverShuttingDown. Les deux sont des événements côté serveur.

lua
AddEventHandler('txAdmin:events:scheduledRestart', function(eventData)
    if GetInvokingResource() ~= 'monitor' then return end
    -- eventData holds the time left and the announcement text
    print('A restart is scheduled soon')
end)

AddEventHandler('txAdmin:events:serverShuttingDown', function(eventData)
    if GetInvokingResource() ~= 'monitor' then return end
    -- save anything your script still holds in memory
    SaveAllMyData()
end)

La vérification GetInvokingResource() s'assure que l'événement vient de txAdmin (sa ressource s'appelle monitor) et non d'un joueur ou d'un autre script. Vérifiez la documentation txAdmin pour la liste complète des champs de données d'événement dans votre version.

SaveAllMyData représente votre propre fonction qui écrit l'état de votre script dans la base de données. Gardez-la rapide : le serveur n'attend pas indéfiniment.

Conseils pratiques

  • Redémarrez moins souvent que vous pensez avoir besoin, mais pas jamais. Une fois par jour fonctionne pour la plupart des serveurs. Les serveurs lourds le font deux fois.
  • Sauvegardez avant le redémarrage. Une sauvegarde de base de données planifiée quelques minutes plus tôt signifie que vous pouvez toujours revenir. Voir backing up your server.
  • Regardez le premier démarrage après un redémarrage. Si un script ne démarre pas, vous voulez le savoir avant que les joueurs se connectent. Vérifiez la console txAdmin.
  • Utilisez l'ordre des ressources. Les scripts qui ont besoin d'une base de données ou d'un cœur doivent démarrer après. Voir server.cfg resource order.
  • Ne redémarrez pas pendant les événements. Si vous exécutez un événement planifié, déplacez le redémarrage ou faites-le à la main après.

Ce qu'un redémarrage ne répare pas

Si le serveur ralentit ou lag depuis le moment où il démarre, le problème est un script, pas le temps de fonctionnement. Vérifiez server thread hitch warnings et resmon. Un calendrier ne traite que l'accumulation lente.

Liste de contrôle

Symptôme Solution
Le serveur se ralentit après des heures Ajoutez un redémarrage quotidien, puis trouvez le script qui fuit
Redémarrage à la mauvaise heure Vérifiez le fuseau horaire de la machine exécutant txAdmin
Les joueurs surpris par le redémarrage Utilisez les annonces de txAdmin et publiez l'heure des redémarrages
Progression perdue au redémarrage Sauvegardez dans la base de données quand les données changent, pas seulement à l'arrêt
Besoin d'une dernière sauvegarde Gérez txAdmin:events:serverShuttingDown et vérifiez GetInvokingResource()
Le redémarrage casse les scripts Corrigez l'ordre de démarrage et lisez la console après le redémarrage

Réponses rapides

À quelle fréquence un serveur FiveM devrait-il redémarrer ?

La plupart des serveurs redémarrent une ou deux fois par jour, à l'heure la plus calme. Si vous voyez les performances diminuer pendant la journée, redémarrez plus souvent et cherchez le script qui en est la cause.

Les joueurs perdront-ils leur progression au redémarrage ?

Non si votre framework et vos scripts sauvegardent correctement. Les frameworks sauvegardent les joueurs régulièrement et quand ils se déconnectent, et vos propres scripts doivent aussi sauvegarder sur un minuteur, pas seulement à l'arrêt.

Où définir les heures de redémarrage ?

Dans les paramètres du panneau web txAdmin, dans la section redémarrage. Vous ajoutez l'heure de la journée, et txAdmin affiche les avertissements aux joueurs avant chacun.

Des scripts sans ce problème

Crypto MiningAchetez un entrepôt, montez vos rigs pièce par pièce et minez sur un marché qui bouge.Voir le script →Arcade MachinesSept jeux d’arcade jouables dans de vraies bornes, avec classements et paris.Voir le script →Tebex TemplateUn thème premium sans code pour votre boutique Tebex, entièrement modifiable depuis le panel Tebex.Voir le script →

À lire aussi