elixir mix app 看不懂
elixir mix app cannot understand clearly
我尝试使用长生不老药。
有点难理解application.ex
defmodule PluralsightTweet.Application do
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
@moduledoc false
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
# Define workers and child supervisors to be supervised
children = [
# Starts a worker by calling: PluralsightTweet.Worker.start_link(arg1, arg2, arg3)
worker(PluralsightTweet.TweetServer, [])
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: PluralsightTweet.Supervisor]
process = Supervisor.start_link(children, opts)
PluralsightTweet.Scheduler.schedule_file("* * * * *", Path.join("#{:code.priv_dir(:pluralsight_tweet)}",
"sample.txt"))
process
end
end
我正在学习 pluralsight elixir 教程
这是调度程序,每分钟通过阅读文本文件发送文本
任务成功但没有crystal关于过程的明确理想
谁能解释一下里面发生了什么application.ex
运行 作为主管应用
use Application
这一行表示当前模块是一个应用程序的入口。这样的模块可以配置在mix.exs
中作为一个单元启动。
# Inside mix.exs
def application do
[
extra_applications: [:logger],
mod: {PluralsightTweet.Application, []} # <-- this line
]
end
start
函数
该函数为应用启动时的回调。您可以将其视为某些其他语言中的 main
函数。
import Supervisor.Spec, warn: false
它只是让您在调用 worker
、supervisor
和 supervise
时省略模块名称。即使您不调用任何这些函数,warn: false
部分也会抑制警告。
children = [worker(PluralsightTweet.TweetServer, [])]
此行指定您的应用程序监管的子进程。请注意,此时尚未生成子进程。
worker(mod, args)
只是定义了一个worker spec,稍后会启动。 args
将在启动 worker 时传递给 mod
的 start_link
函数。
opts = [strategy: :one_for_one, name: PluralsightTweet.Supervisor]
主管选项。
参见strategies documentation了解strategy: :one_for_one
和其他策略的含义。
因为你只有一个工人,所以除了 :simple_one_for_one
之外的所有策略都非常有效。
棘手的部分是 name: PluralsightTweet.Supervisor
。您可能想知道模块 PluralsightTweet.Supervisor
是从哪里来的。事实是它不是一个模块。只是一个原子:"Elixir.PluralsightTweet.Supervisor"
,作为supervisor进程的名字
Supervisor.start_link(children, opts)
现在生成主管进程及其子进程。
我尝试使用长生不老药。
有点难理解application.ex
defmodule PluralsightTweet.Application do
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
@moduledoc false
use Application
def start(_type, _args) do
import Supervisor.Spec, warn: false
# Define workers and child supervisors to be supervised
children = [
# Starts a worker by calling: PluralsightTweet.Worker.start_link(arg1, arg2, arg3)
worker(PluralsightTweet.TweetServer, [])
]
# See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: PluralsightTweet.Supervisor]
process = Supervisor.start_link(children, opts)
PluralsightTweet.Scheduler.schedule_file("* * * * *", Path.join("#{:code.priv_dir(:pluralsight_tweet)}",
"sample.txt"))
process
end
end
我正在学习 pluralsight elixir 教程 这是调度程序,每分钟通过阅读文本文件发送文本
任务成功但没有crystal关于过程的明确理想
谁能解释一下里面发生了什么application.ex 运行 作为主管应用
use Application
这一行表示当前模块是一个应用程序的入口。这样的模块可以配置在mix.exs
中作为一个单元启动。
# Inside mix.exs
def application do
[
extra_applications: [:logger],
mod: {PluralsightTweet.Application, []} # <-- this line
]
end
start
函数
该函数为应用启动时的回调。您可以将其视为某些其他语言中的 main
函数。
import Supervisor.Spec, warn: false
它只是让您在调用 worker
、supervisor
和 supervise
时省略模块名称。即使您不调用任何这些函数,warn: false
部分也会抑制警告。
children = [worker(PluralsightTweet.TweetServer, [])]
此行指定您的应用程序监管的子进程。请注意,此时尚未生成子进程。
worker(mod, args)
只是定义了一个worker spec,稍后会启动。 args
将在启动 worker 时传递给 mod
的 start_link
函数。
opts = [strategy: :one_for_one, name: PluralsightTweet.Supervisor]
主管选项。
参见strategies documentation了解strategy: :one_for_one
和其他策略的含义。
因为你只有一个工人,所以除了 :simple_one_for_one
之外的所有策略都非常有效。
棘手的部分是 name: PluralsightTweet.Supervisor
。您可能想知道模块 PluralsightTweet.Supervisor
是从哪里来的。事实是它不是一个模块。只是一个原子:"Elixir.PluralsightTweet.Supervisor"
,作为supervisor进程的名字
Supervisor.start_link(children, opts)
现在生成主管进程及其子进程。