feat(emqx): expose timestamp function in `emqx_message`
So that the code that relies on it would not need to guess clock source and precision.
This commit is contained in:
parent
38b7f516bc
commit
46d8301bc0
|
@ -66,7 +66,8 @@
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
is_expired/1,
|
is_expired/1,
|
||||||
update_expiry/1
|
update_expiry/1,
|
||||||
|
timestamp_now/0
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-export([
|
-export([
|
||||||
|
@ -113,14 +114,13 @@ make(From, Topic, Payload) ->
|
||||||
emqx_types:payload()
|
emqx_types:payload()
|
||||||
) -> emqx_types:message().
|
) -> emqx_types:message().
|
||||||
make(From, QoS, Topic, Payload) when ?QOS_0 =< QoS, QoS =< ?QOS_2 ->
|
make(From, QoS, Topic, Payload) when ?QOS_0 =< QoS, QoS =< ?QOS_2 ->
|
||||||
Now = erlang:system_time(millisecond),
|
|
||||||
#message{
|
#message{
|
||||||
id = emqx_guid:gen(),
|
id = emqx_guid:gen(),
|
||||||
qos = QoS,
|
qos = QoS,
|
||||||
from = From,
|
from = From,
|
||||||
topic = Topic,
|
topic = Topic,
|
||||||
payload = Payload,
|
payload = Payload,
|
||||||
timestamp = Now
|
timestamp = timestamp_now()
|
||||||
}.
|
}.
|
||||||
|
|
||||||
-spec make(
|
-spec make(
|
||||||
|
@ -137,7 +137,6 @@ make(From, QoS, Topic, Payload, Flags, Headers) when
|
||||||
is_map(Flags),
|
is_map(Flags),
|
||||||
is_map(Headers)
|
is_map(Headers)
|
||||||
->
|
->
|
||||||
Now = erlang:system_time(millisecond),
|
|
||||||
#message{
|
#message{
|
||||||
id = emqx_guid:gen(),
|
id = emqx_guid:gen(),
|
||||||
qos = QoS,
|
qos = QoS,
|
||||||
|
@ -146,7 +145,7 @@ make(From, QoS, Topic, Payload, Flags, Headers) when
|
||||||
headers = Headers,
|
headers = Headers,
|
||||||
topic = Topic,
|
topic = Topic,
|
||||||
payload = Payload,
|
payload = Payload,
|
||||||
timestamp = Now
|
timestamp = timestamp_now()
|
||||||
}.
|
}.
|
||||||
|
|
||||||
-spec make(
|
-spec make(
|
||||||
|
@ -164,7 +163,6 @@ make(MsgId, From, QoS, Topic, Payload, Flags, Headers) when
|
||||||
is_map(Flags),
|
is_map(Flags),
|
||||||
is_map(Headers)
|
is_map(Headers)
|
||||||
->
|
->
|
||||||
Now = erlang:system_time(millisecond),
|
|
||||||
#message{
|
#message{
|
||||||
id = MsgId,
|
id = MsgId,
|
||||||
qos = QoS,
|
qos = QoS,
|
||||||
|
@ -173,7 +171,7 @@ make(MsgId, From, QoS, Topic, Payload, Flags, Headers) when
|
||||||
headers = Headers,
|
headers = Headers,
|
||||||
topic = Topic,
|
topic = Topic,
|
||||||
payload = Payload,
|
payload = Payload,
|
||||||
timestamp = Now
|
timestamp = timestamp_now()
|
||||||
}.
|
}.
|
||||||
|
|
||||||
%% optimistic esitmation of a message size after serialization
|
%% optimistic esitmation of a message size after serialization
|
||||||
|
@ -403,6 +401,11 @@ from_map(#{
|
||||||
extra = Extra
|
extra = Extra
|
||||||
}.
|
}.
|
||||||
|
|
||||||
|
%% @doc Get current timestamp in milliseconds.
|
||||||
|
-spec timestamp_now() -> integer().
|
||||||
|
timestamp_now() ->
|
||||||
|
erlang:system_time(millisecond).
|
||||||
|
|
||||||
%% MilliSeconds
|
%% MilliSeconds
|
||||||
elapsed(Since) ->
|
elapsed(Since) ->
|
||||||
max(0, erlang:system_time(millisecond) - Since).
|
max(0, timestamp_now() - Since).
|
||||||
|
|
Loading…
Reference in New Issue