我正在制作一个Messenger bot,我使用Ring作为我的http框架.
有时我想在机器人发送的消息之间应用延迟.我的期望是使用它是安全的,Thread/sleep因为这会使活动线程休眠,而不是整个服务器.是这样,还是应该诉诸clojure/core.async?
这是我将要编写的代码async:
(match [reply]
; The bot wants to send a message (text, images, videos etc.) after n milliseconds
[{:message message :delay delay}]
(do
(Thread/sleep interval delay)
(facebook/send-message sender-id message))
; More code would follow...
Run Code Online (Sandbox Code Playgroud)
一个链接到环代码,其中这种意义上的行为是明确的,以及任何其他有关此问题的解释.
我需要以格式获取昨天的日期(不是基于用户,而是相对于服务器)YYYY-MM-DD.
在Clojure中实现这一目标的最佳方法是什么?
我将 Docker 与 Docker Compose 一起使用,这些是我的文件:
#DOCKERFILE
FROM mhart/alpine-node
# Create app directory
RUN mkdir -p /home/app
# Bundle app soure
COPY . /home/app
# From now on we work in /home/app
WORKDIR /home/app
# Install yarn and node modules
RUN echo -e 'http://dl-cdn.alpinelinux.org/alpine/edge/main\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/community\nhttp://dl-
cdn.alpinelinux.org/alpine/edge/testing' > /etc/apk/repositories \
&& apk add --no-cache yarn \
&& yarn
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
这是 dev 的 docker-compose 文件:
app:
build: .
command: yarn start:dev
environment:
NODE_ENV: development
ports:
- '8080:8080'
volumes:
- .:/home/app
- …Run Code Online (Sandbox Code Playgroud) 我有一些SVG,它们的defs属性带有style标签。像这样:
<svg ...>
<defs>
<style>.cls-1,.cls-7{fill:#b2488d;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6{stroke:#671f4d;}</style>
</defs>
...
</svg>
Run Code Online (Sandbox Code Playgroud)
我想在React中使用这些SVG,所以我想将它们转换为有效的JSX。我已经使用过svg2jsx之类的工具,但是它们将defs标签剥离了,所以样式属性不再存在。有没有一种方法可以通过在JSX中转换SVG 来保留defs带有style标签的?还是在这种情况下无法使用CSS类?
我正在尝试使用 github 操作将静态站点部署到 AWS S3 和 Cloudfront。我的 Github Action 代码是:
name: deploy-container
on:
push:
branches:
- master
paths:
- 'packages/container/**'
defaults:
run:
working-directory: packages/container
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install
- run: npm run build
- uses: chrislennon/action-aws-cli@v1.1
- run: aws s3 sync dist s3://${{secrets.AWS_S3_BUCKET_NAME}}/container/latest
env:
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试构建时出现了这些错误
amazon-s3 amazon-web-services amazon-cloudfront webpack github-actions
我有这个Clojure代码来定义我的回复对象的架构,它可以是
{:message {:text "Hello"} :delay 3000}
要么
{:action "typing_on" :duration 5000}
该reply地图可以有:message或:action并分别可选的键:delay和:duration.
我试图用这种方式表达clojure.spec:
(s/def ::action #{"typing_on" "typing_off" "mark_seen"})
(s/def ::duration int?)
(s/def ::delay int?)
(s/def ::message map?)
(s/def ::message-reply (s/keys :req-un [::message]
:opt-un [::delay]))
(s/def ::action-reply (s/keys :req-un [::action]
:opt-un [::duration]))
(s/def ::reply (or ::action-reply ::message-reply))
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,这些规范将true仅使用它们在or子句中找到的第一个模式进行验证::action-reply.我想要实现的是,无论是::action-reply或者::message-reply是有效的模式::reply.
clojure ×3
node.js ×2
reactjs ×2
amazon-s3 ×1
clojure.spec ×1
csrf ×1
css ×1
date ×1
docker ×1
dockerfile ×1
javascript ×1
jsx ×1
package.json ×1
react-server ×1
ring ×1
svg ×1
webpack ×1