Je souhaiterais demander la création d’un ou deux paramètres de site permettant de configurer une « fenêtre temporelle » et des « jours de résumé » lors de la mise en file d’attente des tâches de résumés.
La raison de cette demande est que, pour la plupart des sites, y compris le nôtre, nous avons une zone géographique dominante pour nos utilisateurs ; par exemple, la nôtre est les États-Unis, d’autres pourraient être la Corée, le Brésil, l’Allemagne, l’Australie ou toute région du monde.
L’envoi de courriels de résumé serait plus efficace s’ils pouvaient être envoyés pendant les heures et jours ouvrables normaux (pour la base principale d’utilisateurs). De nombreux sites paient pour des services d’envoi de masse comme MailGun ou SendGrid pour envoyer des courriels de résumé ; ainsi, faire en sorte que ces courriels de résumé arrivent dans la boîte de réception des membres « vers » par exemple « 10 h le lundi » est bien mieux que d’arriver à « 3 h le samedi ».
Ces tâches sont mises en file d’attente, et avoir une ou deux variables de configuration comme « fenêtre de mise en file d’attente des résumés » et « jours autorisés pour la mise en file d’attente des résumés » rendrait l’argent dépensé pour l’envoi de ces courriels de résumé plus efficace.
J’ai recherché dans le cœur du code sur GitHub et je n’ai trouvé aucun moyen de définir ces paramètres importants. Les ai-je manqués ?
Par défaut, Discourse envoie le résumé à l’heure où l’utilisateur a terminé une période d’inactivité de 7 jours, ce qui signifie que l’e-mail correspondra à une fenêtre pendant laquelle l’utilisateur était actif sur le site. C’est idéal car cela s’adapte automatiquement à chaque utilisateur et à chaque fuseau horaire.
Un problème très courant concerne les importations, où les administrateurs oublient de désactiver les résumés pour les utilisateurs importés ou oublient d’importer l’heure de dernière activité dans les données importées, ce qui fait que tout est réglé sur minuit.
LOL. Vous avez mis le doigt sur le problème ! Nos utilisateurs importés avaient leur dernière activité définie à l’heure de leur importation dans Discourse depuis notre ancien site vB.
Dans notre cas, les scripts Discourse que nous avons utilisés ne l’ont pas fait ; et nous ne pouvons pas « oublier » de faire quelque chose dont nous n’avions aucune idée au départ, LOL.
Comme on dit, la clairvoyance est toujours de 20/20.
Je ne pense pas que la plupart des utilisateurs qui migrent vers Discourse pour la première fois depuis un forum legacy puissent « oublier » quelque chose « avant de connaître les détails du fonctionnement des résumés Discourse »
Ce n’est pas un gros problème. Mais comme vous le dites vous-même :
D’où la fonctionnalité que je demande, qui aiderait à atténuer ce problème pour les forums migrés, ces « âmes non soutenues » qui se trouvent généralement « seules » dans le cyberespace lorsqu’elles migrent un forum vers Discourse
Puisque je suppose que ce « problème courant » ne sera pas résolu, pourriez-vous s’il vous plaît poster un lien vers le code dans le dépôt où je pourrais écrire un plugin pour appliquer un correctif de type « monkey patch » à ce problème pour nous, âmes perdues de la migration, qui avons « oublié de faire quelque chose » avant de « savoir que nous en avions besoin » ?
Ou peut-être, oublions ça. Au lieu d’un monkey patch, j’écrirai un script Ruby pour modifier simplement l’heure de la « dernière activité » des utilisateurs migrés, en la définissant pendant les heures normales de bureau (il suffit d’ajouter 10 heures à minuit, et c’est réglé !)
Je viens de mettre à jour tous ces utilisateurs legacy afin que leurs dates/heures last_seen_at correspondent à 10 h EST.
D’après ma lecture de votre réponse, cela va mettre en file d’attente leurs e-mails de résumé vers cette heure-là le matin, à 10 h.
C’est correct ?
Mise à jour :
Hmmm. Cela ne semble pas fonctionner. Après avoir défini les dates-heures last_seen_at à 10 h EST, Sidekiq met maintenant en file d’attente les résumés juste après minuit EST ; et les journaux d’envoi d’e-mails du panneau d’administration montrent également que les résumés sont envoyés maintenant.
Cette « alignement magique de la dernière activité » sur l’heure d’envoi des résumés ne semble pas fonctionner comme décrit de mon côté.