Skip to content

PlantUML

部署图

plantuml
actor actor
agent agent
artifact artifact
boundary boundary
card card
cloud cloud
component component
control control
database database
entity entity
file file
folder folder
frame frame
interface  interface
node node
package package
queue queue
stack stack
rectangle rectangle
storage storage
usecase usecase
plantuml
!theme mono
left to right direction

node node1
node node2
node node3
node node4
node node5
node node6
node node7
node1 -- node2 : label1
node1 .. node3 : label2
node1 ~~ node4 : label3
node1 == node5
node1 <--> node6
node1 ..> node7

活动图

plantuml
!theme toy
start
#red:app start;
:redis lock for pods;
if (is current month table created ?) then
else
  :create current table;
endif
:app running;
stop
plantuml
!theme mono

start
: enableImportCandidateJob;
if (is ATS in NEW_STRATEGY_ATS_LIST?) then (Yes)
  : enableNewStrategyPuling;
  : launchPullCandidateWithNewStrategy;
  : setImmediatePullTaskWithNewStrategy;
  : Queue Job;

  group API /callback/pullTask/scheduleSubTask
    : POST /scheduleSubTask;
    : pullTaskService.schedulePullTask;

    if (is INIT task?) then (Yes)
      : scheduleInitPullSubTask;
      : generateInitPullSubTask;
      : save subtask to PULL_SUB_TASK;
      : foreach call Flowtask with subtasks;
    else (No)
      : scheduleCronPullSubTask;
      split
        : generateCronPullSubTask;
        : save subtask to PULL_SUB_TASK;
        : foreach call Flowtask with subtasks;
      split again
        : schedulePullEntitySubTask;
        group call API /callback/queue/pull/entity
          : ...;
        stop
        end group
      end split
    endif

    group #fafafa/green foreach call API /callback/queue/pull/candidate
      : POST /candidate;
      : pullCandidateNewStrategy;
      : atsPullHandler.constructCandidateFilter;
      : atsPullHandler.pullCandidateByFilter;
      stop
    endgroup

  end group

else (No)
  : pullTaskTriggerQueue.addJob;
  stop
endif
plantuml
!theme mars
start
:mars;
#red:app start;
:redis lock for pods;
if (is current month table created ?) then
else
  :create current table;
endif
:app running;
stop
plantuml
start
#red:app start;
:redis lock for pods;
if (is current month table created ?) then
else
  :create current table;
endif
:app running;
stop
plantuml
start

if (Are you ok?) then
  :test A;
else
  :test B;
endif

stop

思维导图

plantuml
@startmindmap
!theme mono
* Debian
  * Ubuntu
  * Linux Mint
@endmindmap

JSON

plantuml
@startjson
!theme plain
{
  "firstName": "John",
  "lastName": "Smith",
  "isAlive": true,
  "age": 27,
  "address": {
    "streetAddress": "21 2nd Street",
    "city": "New York",
    "state": "NY",
    "postalCode": "10021-3100"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "office",
      "number": "646 555-4567"
    }
  ],
  "children": [],
  "spouse": null
}
@endjson

甘特图

plantuml
@startgantt
!theme mono
[Prototype design] requires 15 days
[Test prototype] requires 10 days
-- All example --
[Task 1 (1 day)] requires 1 day
[T2 (5 days)] requires 5 days
[T3 (1 week)] requires 1 week
[T4 (1 week and 4 days)] requires 1 week and 4 days
[T5 (2 weeks)] requires 2 weeks
@endgantt

状态图

plantuml
@startuml
!theme mono
left to right direction
skinparam backgroundColor transparent

关关雎鸠:
大漠孤烟:
长河落日:
长河落日合:
明月天山:
明月天山合:

关关雎鸠--> 大漠孤烟
大漠孤烟--> 长河落日合
长河落日--> 长河落日合

长河落日合-->明月天山合
明月天山-->明月天山合

@enduml

Reference