func acquireLock(client *redis.Client) bool {
	_, err := client.Watch(DIST_LOCK)
	if err != nil {
		log.Fatalf("Error watching distributed lock key. ERR: %+v", err)
		return false
	}
	value, err := client.Get(DIST_LOCK).Int64()
	if err != nil {
		log.Fatalf("Error getting distributed lock key. ERR: %+v", err)
		return false
	}
	if value == ACQUIRED {
		return false
	}
	multi := client.Multi()
	_, err = multi.Exec(func() error {
		err := multi.Set(DIST_LOCK, ACQUIRED, 0).Err()
		if err != nil {
			log.Fatalf("Error setting distributed lock key. ERR: %+v", err)
			return err
		}
		return nil
	})
	if err != nil {
		log.Fatalf("Error executing the set distributed lock key. ERR: %+v", err)
		return false
	}
	return true
}