2017-05-07 3 views
-2

Le code PHP suivant qui permet à un processus de s'exécuter uniquement entre certaines heures. Comment cela se ferait-il dans GoLang?Permet de courir du dimanche au vendredi?

$curdate = date('Y-m-d'); 
$mydate=getdate(strtotime($curdate)); 
if ($mydate['wday'] === 0) { 
    if (date('H') < 15) { exit; }; // This is for 0 Sunday!!! 
} 
if ($mydate['wday'] === 5) { 
    if (date('H') > 19) { exit; }; // This is for 5 Friday!!! 
} 
if ($mydate['wday'] === 6) { 
    exit; // This is for 6 Saturday // 
} 

Répondre

4

Cela devrait faire la même chose:

now := time.Now() 
day := now.Weekday() 
hr := now.Hour() 

if day == 0 { 
    if hr < 15 { os.Exit(0) } 
} 
if day == 5 { 
    if hr > 19 { os.Exit(0) } 
} 
if day == 6 { 
    os.Exit(0) 
} 

Où De même, chaque jour peut être représenté par un entier (0-6).

Notez que pour utiliser time et os vous devrez appeler

import "time" 
import "os" 

Voir the documentation pour plus sur le temps golang. N'écrivez pas de code PHP en tant que code Go.

+0

Comment allez-vous vérifier que le processus est déjà en cours d'exécution s'il est appelé à démarrer? Donc, le processus n'aurait pas plus d'une instance en cours d'exécution? – user2777145

+0

@ user2777145 Désolé mais vous devrez faire quelques recherches ou poser une question séparée car je ne connais pas – Bassie

+0

Aucun problème ma réparation est à ps | grep pour le processus avant de démarrer le processus pour vérifier qu'il n'est pas en cours d'exécution. – user2777145

0

Écrivez le code Go. Par exemple,

package main 

import (
    "os" 
    "time" 
) 

func main() { 
    now := time.Now() 
    hour := now.Hour() 
    switch now.Weekday() { 
    case time.Sunday: 
     if hour < 15 { 
      os.Exit(0) 
     } 
    case time.Friday: 
     if hour > 19 { 
      os.Exit(0) 
     } 
    case time.Saturday: 
     os.Exit(0) 
    } 
    // Do Something 
} 
+0

Je suis dans une boucle jusqu'à ce que je frappe de l'autre côté de la date/heure. Je dois donc appeler time.now et ensuite faire un test de switch/case ou si. Je ne sais pas quel serait le meilleur moyen d'y arriver. commutateur/cas est plus rapide que plusieurs si dans la fonction principale de go. – user2777145