code: func (j *Job) ArgInt64(key string) int64 {
  	v, ok := j.Args[key]
  	if ok {
  		rVal := reflect.ValueOf(v)
  		if isIntKind(rVal) {
  			return rVal.Int()
  		} else if isUintKind(rVal) {
  			vUint := rVal.Uint()
  			if vUint <= math.MaxInt64 {
  				return int64(vUint)
  			}
  		} else if isFloatKind(rVal) {
  			vFloat64 := rVal.Float()
  			vInt64 := int64(vFloat64)
  			if vFloat64 == math.Trunc(vFloat64) && vInt64 <= 9007199254740892 && vInt64 >= -9007199254740892 {
  				return vInt64
  			}
  		}
  		j.argError = typecastError("int64", key, v)
  	} else {
  		j.argError = missingKeyError("int64", key)
  	}
  	return 0
  }
docs: // ArgInt64 returns j.Args[key] typed to an int64. If the key is missing or of the wrong type, it sets an argument error
  // on the job. This function is meant to be used in the body of a job handling function while extracting arguments,
  // followed by a single call to j.ArgError().